美文网首页
交换排序之冒泡排序

交换排序之冒泡排序

作者: 木木禾木 | 来源:发表于2021-06-10 13:02 被阅读0次

    原理:将序列划分为无序和有序区,不断通过交换较大元素至无序区尾完成排序。
    要点:设计交换判断条件,提前结束以排好序的序列循环。

        private static void sortBubble(int[] array) {
            boolean isSort = true;
            for (int i = 1; i < array.length && isSort; i++) {
                isSort = false;  //是否需要排序
                for (int j = 0; j < array.length - 1; j++) {
                    if (array[j] > array[j + 1]) {    //降序只需将>改为<
                        int temp = array[j];
                        array[j] = array[j + 1];
                        array[j + 1] = temp;
                        isSort = true;
                    }
                }
                printArray(String.format(Locale.getDefault(), "第 %2d 趟 : ", i), array);
            }
        }
    

    结果:

    原数组:  55  22  66  33  11  99  77  44  88
    冒泡排序:
    第  0 趟 :   22  55  33  11  66  77  44  88  99
    第  1 趟 :   22  33  11  55  66  44  77  88  99
    第  2 趟 :   22  11  33  55  44  66  77  88  99
    第  3 趟 :   11  22  33  44  55  66  77  88  99
    第  4 趟 :   11  22  33  44  55  66  77  88  99
    
    局部排序
        private static void sortBubble(int[] array, int start, int end) {
            boolean isSort = true;
            end = Math.min(end, array.length);
            for (int i = start; i < end && isSort; i++) {
                isSort = false;
                for (int j = start; j < end - 1; j++) {
                    if (array[j] > array[j + 1]) {
                        int temp = array[j];
                        array[j] = array[j + 1];
                        array[j + 1] = temp;
                        isSort = true;
                    }
                }
                printArray(String.format(Locale.getDefault(), "第 %2d 趟 : ", i), array);
            }
        }
    

    对数组的【2,7)排序结果:

    原数组:  55  22  66  33  11  99  77  44  88
    冒泡排序:
    第  2 趟 :   55  22  33  11  66  77  99  44  88
    第  3 趟 :   55  22  11  33  66  77  99  44  88
    第  4 趟 :   55  22  11  33  66  77  99  44  88
    
    

    相关文章

      网友评论

          本文标题:交换排序之冒泡排序

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