美文网首页算法
排序算法:交换排序_冒泡排序

排序算法:交换排序_冒泡排序

作者: ADark0915 | 来源:发表于2018-02-27 11:10 被阅读34次

    关键词:相邻两两之间

    趟: 每将数组中的一个数归位,称为“一趟”

    bubble.png
    private void bubbleSort(int[] pInts) {
            for (int i = 0; i < pInts.length; i++) {
    
                // 设置标记,如果没有大小交换,就跳出此次比较
                boolean swap = false;
                // 比较相邻两位的大小,排除数组较比越界的可能,在长度上-1,在遍历到倒数第二个的时候,j 就不再向后取值
                for (int j = 0; j < pInts.length - 1 - i; j++) {
                    if (pInts[j] > pInts[j + 1]) {
                        swap(pInts, j, j + 1);
                        swap = true;
                    }
                }
    
                // 此时说数组中的元素已经按照要求排好了顺序,如果此时外圈的循环还没结束,就手动跳出
                if (!swap) {
                    break;
                }
    
            }
        }
    
        private void swap(int[] pInts, int a, int b) {
            pInts[a] = pInts[a] + pInts[b];
            pInts[b] = pInts[a] - pInts[b];
            pInts[a] = pInts[a] - pInts[b];
        }
    

    相关文章

      网友评论

        本文标题:排序算法:交换排序_冒泡排序

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