主要的思路其实就是从最左边开始,依次比较相邻两个元素的大小,若左边的数大于右边的数就进行交换,这样把所有的相邻元素都比较一遍以后,最右边的数就是其中最大的数了。
紧接着又继续从最左边开始,依次比较各个相邻元素,并判断是否需要交换位置,但与第一遍不同的是,最右边的数不需要进行比较,因为它已经是最大的了。因此第二遍比较完后从右往左数第二个数是其中第二大的数。
以此类推,就能将数据按从小到大的顺序排好了
我们来看一下如何封装冒泡排序的函数吧
function bubbleSort(arr) {
if(!Array.isArray(arr)){
return arr;
}
let length = arr.length;
for(let i=length-1; i>0; i--) {
for(let j=0; j<i; j++) {
if(arr[j]>arr[j+1]){
[arr[j], arr[j+1]] = [arr[j+1], arr[j]]
}
}
}
return arr;
}
console.log(bubbleSort([25,16,30,16,40,8]));
// [8, 16, 16, 25, 30, 40]
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。