冒泡排序

来源:互联网 发布:sql server 2008 激活 编辑:程序博客网 时间:2024/06/06 05:41

冒泡排序原理

冒泡排序算法的运作如下:(从后往前)
1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
3. 针对所有的元素重复以上的步骤,除了最后一个。
4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较
5. 需要注意的是,每一次的比较都可以得到一个合适的数字放置到最后,因为范围是一点一点在减小的

代码展示

  /**     * 基本原理:     * 原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,     * <p>     * 这样一趟过去后,最大或最小的数字被交换到了最后一位,     * <p>     * 然后再从头开始进行两两比较交换,直到倒数第二位时结束,其余类似看例子     */    public static void bubbleSort(int[] a) {        for (int i = 0; i < a.length - 1; i++) { //最多做n-1趟排序            for (int j = 0; j < a.length - i - 1; j++) {                if (a[j] < a[j + 1]) { //对当前无序区间score[0......length-i-1]进行排序(j的范围很关键,这个范围是在逐步缩小的)                    //第一趟就把最小的元素交换到了最后面,所以里面的范围是一直在做减少的操作                    int temp = a[j];                    a[j] = a[j + 1];                    a[j + 1] = temp;                }            }        }    }

冒泡排序,顾名思义就是从底部一层一层的迭代比较上去,直到比较到最后一个数字,就有点类似冒泡的意思。这个算法的重点就是里面的循环是在不断的递减的。

原创粉丝点击