美文网首页
冒泡排序及冒泡排序优化

冒泡排序及冒泡排序优化

作者: 好学人 | 来源:发表于2020-07-25 11:44 被阅读0次

冒泡排序(Bubble Sort),是计算机科学领域一种较简单的排序算法。

冒泡排序会重复地走访过要排序的元素数列,依次比较两个相邻的元素,如果顺序错误(如从大到小、首字母从Z到A)就把它们交换过来。

走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。

时间复杂度:O(n^2)

排序方式:原地排序

普通冒泡排序

普通冒泡排序共需要进行n-1趟排序,每趟进入n-1-i次比较(交换),代码实现如下:

/**
 * 冒泡排序(升序)
 */
public static void bubbleSort(int[] array) {
    for (int i = 0; i < array.length - 1; i++) {
        for (int j = 0; j < array.length - 1 - i; j++) {
            int item1 = array[j];
            int item2 = array[j + 1];
            if (item1 > item2) {
                array[j] = item2;
                array[j + 1] = item1;
            }
        }
    }
}

优化冒泡排序

在普通冒泡排序的基础上,若我们发现一趟排序中没有发生任何交换,则说明数组排序已完成。

/**
 * 优化冒泡排序(升序)
 */
public static void bubbleSort(int[] array) {
    for (int i = 0; i < array.length - 1; i++) {
        boolean swap = false;
        for (int j = 0; j < array.length - 1 - i; j++) {
            int item1 = array[j];
            int item2 = array[j + 1];
            if (item1 > item2) {
                array[j] = item2;
                array[j + 1] = item1;
                swap = true;
            }
        }
        if (!swap) { // 未发生交换,说明排序完成
            System.out.println("排序完成" + i + "/" + array.length);
            break;
        }
    }
}

相关文章

  • 冒泡排序的C语言实现

    冒泡排序 优化后的冒泡排序

  • 经典排序算法总结

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

  • 冒泡排序及冒泡排序优化

    冒泡排序(Bubble Sort),是计算机科学领域一种较简单的排序算法。 冒泡排序会重复地走访过要排序的元素数列...

  • 排序算法-swift实现

    1.冒泡排序 时间复杂度:O(n^2) 1.1初级 1.2正宗冒泡排序 1.3冒泡排序优化 问题:排序过程中,如果...

  • 冒泡排序(ios和前端script)

    ios之冒泡排序 未优化之前 优化之后 前端冒泡排序(与上同理) 方式一: 方式二:

  • 双线程冒泡排序算法

    双线程冒泡排序算法是对冒泡排序的优化,对冒泡排序加入了另外一个线程。 冒泡排序可以从数组的第0个元素开始排列,同样...

  • Python之算法LOB三人组

    一、冒泡排序 a、冒泡排序----优化 如果冒泡排序中执行一趟而没有交换,则列表已经是有序状态,可以...

  • 从0开始——排序

    0.排序的复杂度比较 1.冒泡排序 冒泡排序基础版本1 正宗冒泡排序优化版本 2.选择排序 3.插入排序算法 4....

  • Java 排序

    冒泡排序 1、冒泡排序及算法实现 什么是冒泡排序呢?冒泡排序是一种简单的排序方法,它的基本思想是:通过相邻两个元素...

  • 算法-冒泡排序

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

网友评论

      本文标题:冒泡排序及冒泡排序优化

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