常规算法
在动画演示中我们可以发现 如果有些值已经冒泡成功了 则下次循环次数并不需要arr.length-1 而是再减一
所以我们可以优化一下
在有些冒泡排序中 如果我们的数组已经排好序了 但是 第一层for循环还是会继续
这时候就需要一个boolean值 来判断是否还有进行数值交换
最优方法:
可以发现当 7 和3位置发生交换时候 后面三位则变为7,8,9 完全没有再进行冒泡排序的必要
所以 我们可以记录一下最后一次发生交换位置的索引
等到下一轮冒泡 则从这个索引为终点
常规算法
在动画演示中我们可以发现 如果有些值已经冒泡成功了 则下次循环次数并不需要arr.length-1 而是再减一
所以我们可以优化一下
在有些冒泡排序中 如果我们的数组已经排好序了 但是 第一层for循环还是会继续
这时候就需要一个boolean值 来判断是否还有进行数值交换
最优方法:
可以发现当 7 和3位置发生交换时候 后面三位则变为7,8,9 完全没有再进行冒泡排序的必要
所以 我们可以记录一下最后一次发生交换位置的索引
等到下一轮冒泡 则从这个索引为终点