1.冒泡排序
含义:冒泡排序比较所有相邻的两个项,如果第一个比第二个大,则交换他们,元素项向上移动至正确顺序,就好像气泡升至表面一样,冒泡排序应此得名
function bubbleSort(array, compareFn =defaultCompare){
const { length } = array; //{1}
for(let i = 0;i<length;i++){ //{2}
for(letj =0;j<length-1;j++){ //{3}
if(compareFn(array[j],array[j+1])=== Compare.BIGGER_THAN){ // {4}
swap(array,j,j+1);
}
}
}
return array;
}
function defaultCompare(a,b){
return a<b? Compare.LESS_THAN : Compare.BIGGER_THAHN
}
function swap(array,a,b){
// 方法一
const temp = array[a];
array[a] = array[b]
array[b] = temp
// 方法二 数组解构赋值(数组长度大于2时不适用)
[array[a],array[b]] = [array[b],array[a]];
// 方法三
array.splice(0,1,...array.splice(1,1,array[0]))
}