冒泡排序(java)

2020-04-25  本文已影响0人  castlet

一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。

代码

void bubbleSort(int[] arr){
        if (arr == null || arr.length == 0) {
                return;
        }

        for (int i = 0; i < arr.length; i++) {
                boolean hasSwap = false; //标记位, 默认为false
                for (int j = arr.length - 1; j > i; j--) {
                        if (arr[j] < arr[j-1]) {
                                hasSwap = true;  // 如果有数据交换,则标记为置为true
                                swap(arr, j, j - 1);
                        }
                }
                if (!hasSwap) { //如果上次循环里没有数据交换,说明已经排好序了,直接break
                        break;
                }
        }
}
上一篇下一篇

猜你喜欢

热点阅读