Java实现冒泡排序优化版

之前写过一篇关于冒泡排序的文章,飞机:冒泡排序
今天我们来看一个优化版本,关于原理之前已经有了,不懂的可以直接跳转到上一篇文章,本篇直接贴代码:

/**
 * @author LFDMW
 * @date 2021-01-12 21:43
 */
public class BubbleSort {
    public static void main(String[] args) {
        int[] nums = {3, 1, 8, 9, 2, 7, 0};
        int sortBorder = nums.length - 1;
        int lastIndex = 0;
        for (int i = 0; i < nums.length - 1; i++) {
            boolean isSort = true;
            for (int j = 0; j < sortBorder; j++) {
                if (nums[j] > nums[j + 1]) {
                    nums[j] ^= nums[j + 1];
                    nums[j + 1] ^= nums[j];
                    nums[j] ^= nums[j + 1];
                    lastIndex = j;
                    isSort = false;
                }
            }
            sortBorder = lastIndex;
            if (isSort) {
                break;
            }
        }
        for (int num : nums) {
            System.out.print(num + " ");
        }
    }
}

记录了每次交换的位置,这样可以过滤掉已经是最大或者最小值的数据了,节省了比较次数

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 岁月 设计师:pinMode 返回首页