1、冒泡排序
function sort(arr){
for(let i = 0;i<arr.length;i++){
for(let j = 0;j<arr.length - 1 - i;j++){
if(arr[j] > arr[j + 1]){
[arr[j],arr[j + 1]] = [arr[j + 1],arr[j]]
}
}
}
return arr;
}
这种排序方式有两种极端的情况,一种是正序,就会一直在做无用功,还有一种就是逆序,就会一直更换赋值。
2、选择排序
选择排序说通俗点就是,每次在一群人中找出个子最小的那一个,放在排头,然后在剩下的人中再找出个子最小的那个,放在第二位,以此类推。
function sort(arr){
let minIndex;
for(let i = 0;i<arr.length - 1;i++){
minIndex = i;
for(let j = i + 1;j<arr.length;j++){
if(arr[j] < arr[minIndex]){
minIndex = j;
}
}
[arr[i],arr[minIndex]] = [arr[minIndex],arr[i]];
}
return arr;
}
1000条以内的数据,选择排序会优于冒泡排序
3、插入排序
function sort(arr){
for(let i = 1;i<arr.length;i++){
let compareKey = arr[i];
let j = i - 1;
while(arr[j] > compareKey){
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = compareKey;
}
return arr;
}
插入排序就是假设第一个值是最小值,然后取第二个值和第一个值比较后的产生的数列,然后再拿第三个值与排序后的数列进行比较,并且插入相应的位置。