美文网首页算法
排序算法系列(1)——冒泡排序

排序算法系列(1)——冒泡排序

作者: 阿飞不理飞 | 来源:发表于2021-06-28 22:19 被阅读0次

本着朴素的原则,笔者准备记录的第一个算法是入门级也是最简单、最容易实现的算法——冒泡排序

冒泡排序呢,是交换排序的一种,什么是交换排序呢,其实很好理解哈,就可以简单的理解为:每次比较两个元素,然后判断两个元素是否符合排序规则,如果不符合即交换,交换后二者的相对位置即可确认。

换个说法
对于一个size=n的数组,进行交换排序:
每进行一次交换,那么就能确定两个元素的相对位置。

冒泡排序,对于一轮交换来说,如下图:
第一轮,依次两两比较,如果不符合排序规则,直接交换位置,
这样一直比较到最后两个元素,能够确定最后一个元素为最大值,
那就能选择出最大的元素,放到了第n个位置。
接下来只要对剩下的n-1个元素进行下一次冒泡即可~

冒泡排序.png
    public void bubbleSort(int[] arrays, int start, int end) {
        if (start == end) {
            return;
        }
        for (int i = end; i >= start + 1; i--) {
            for (int j = start; j < i; j++) {
                if (arrays[j] > arrays[j + 1]) {
                    swap(arrays, j, j + 1);
                }
            }
        }
    }

最后谈一下冒泡排序的算法复杂度,我们只要来看比较的次数:
第一轮:n-1次比较
第二轮:n-2次比较
……
第n-1轮:1次比较
综上:O(n^2)

下一篇会继续展开交换排序的另一个算法,也是10大排序中最容易被问被手撸代码的算法——快速排序~

相关文章

  • 面试算法知识梳理(12) - 二叉树算法第二部分

    面试算法代码知识梳理系列 面试算法知识梳理(1) - 排序算法 插入排序 希尔排序 选择排序 冒泡排序 计数排序 ...

  • 面试算法知识梳理(13) - 二叉树算法第三部分

    面试算法代码知识梳理系列 面试算法知识梳理(1) - 排序算法 插入排序 希尔排序 选择排序 冒泡排序 计数排序 ...

  • 算法系列教程(PHP演示)

    算法系列教程-四大排序算法(PHP演示) 冒泡 冒泡排序原理...

  • java 实现排序算法之「选择排序」

    java 实现排序算法系列 继冒泡排序算法之后,选择排序终于和大家见面了。为什么冒泡排序之后要说选择排序呢,是因为...

  • 经典排序算法总结

    经典排序算法集锦 冒泡法 排序算法入门之冒泡排序 排序算法入门之冒泡排序优化

  • 七大排序算法之冒泡排序

    七大排序算法之冒泡排序 @(算法笔记)[排序算法, 冒泡排序, C++实现] 冒泡排序介绍 冒泡排序是七大排序算法...

  • 算法-冒泡排序

    算 法:冒泡排序算法时间复杂度: 冒泡排序算法概述 冒泡排序伪代码 冒泡排序实现 冒泡排序算法概述 冒泡排...

  • 排序系列之四: 冒泡排序法

    Hello,大家好。今天继续给大家讲解排序系列之☞《冒泡排序算法》 冒泡排序(Bubble Sort)...

  • 算法:冒泡排序

    本文内容:1、什么是冒泡排序?2、冒泡排序的 C/OC 实现与算法分析。 算法总目录:算法? 1、什么是冒泡排序?...

  • 2022-03-01

    1.排序算法: 到底什么是排序?-它是排列列表中项目顺序的算法。 重要的排序算法—— 冒泡排序:冒泡排序是最基本的...

网友评论

    本文标题:排序算法系列(1)——冒泡排序

    本文链接:https://www.haomeiwen.com/subject/gejcultx.html