分以下几条讲解:
冒泡排序的目的: 把数组中的顺序杂乱的数组元素按照一定顺序排序,可以是从大到小,也可以是从小到大
为啥叫冒泡: 理解了这个经典排序算法,不难总结出,每个数组元素就像泡泡一样,冒出来,像吐泡泡一样与后面的数组元素进行比较,估摸着是这样,很形象生动这个名字。
冒泡思路: 首先两层循环,一个if单分支判断语句,还有一个经典的交换变量方法,借助temp;外层循环表示趟数,通过找规律可以总结出,长度为arr.length
的数组,共需要比较arr.length-1
趟;内层循环,即每个数组元素比较的次数,也是通过找规律不难总结需要arr.length-i-1
,这里的次数还是需要静下心来慢慢总结的;最后就是最内层的if判断大小的语句了
冒泡代码展示(写法多种,仅供参考):
<script>
var arr = [14, 13, 52, 111];
for (var i = 0; i <= arr.length - 1; i++) {
for (var j = 0; j <= arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
console.log(arr);
</script>
结果如下: