码迷,mamicode.com
首页 > 编程语言 > 详细

冒泡排序

时间:2020-02-21 22:02:23      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:ima   图片   mic   mamicode   alt   inf   info   stat   array   

一、冒泡排序的原理

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

二、图解分析

以[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;
                        }
                }
        }
}

冒泡排序

标签:ima   图片   mic   mamicode   alt   inf   info   stat   array   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!