首页 > 编程语言 > 详细

冒泡排序

时间:2020-02-21 22:16:10      阅读:93      评论:0      收藏:0      [点我收藏+]
一、冒泡排序的原理

冒泡排序:将待排序的一组数分为有序区间和无序区间。先在无序区间通过相邻数的比较,将无序区间的最大数依次冒泡到最上面,持续这个过程,直到整组数有序。

二、图解分析

以[3, 0, 5, 4, 1, 2]为例,进行冒泡排序。

第一趟:从下往上依次两两比较,将最大数交换到最上面,第一趟完成后橙色部分为已排好的部分。
技术分享图片

第二趟:比较方法同上,橙色部分为排好的区间,我们发现有序区间比第一趟的有序区间多一个数。
技术分享图片

第三趟:
技术分享图片

第四趟:
技术分享图片

第五趟:
技术分享图片

最后排好的整组数:
技术分享图片
我们发现,每次排好序的区间数的个数都比前一趟多一个,所以待排序的6个数共循环了5次。

三、代码实现

public static void bubbleSort(int[] array) {   
        for(int bound = 0; bound < array.length - 1; bound++) {  //外层循环(数组长度-1)次
                for(int cur = 0; cur < array.length - 1 -bound; cur++) { //内层循环,有序区间不用再循环
                        if (array[cur] > array[cur + 1]) {
                                int tmp = array[cur];
                                array[cur] = array[cur + 1];
                                array[cur + 1] = tmp;
                        }
                }
        }
}

冒泡排序

原文:https://blog.51cto.com/14298563/2472789

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!