美文网首页
冒泡排序(java)

冒泡排序(java)

作者: castlet | 来源:发表于2020-04-25 20:21 被阅读0次

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

    代码

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

    相关文章

      网友评论

          本文标题:冒泡排序(java)

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