1. 选择排序
let arr = [123, 23, 32, 3, 21, 3, 1, 5, 723, 2]
function selectedSort(arr) {
const len = arr.length
for (let i = 0; i < len - 1; i++) {
let minindex = i
for (let j = i + 1; j < len; j++) {
if (arr[minindex] > arr[j]) {
minindex = j
}
}
if (minindex !== i) {
[arr[minindex], arr[i]] = [arr[i], arr[minindex]]
}
}
console.log(arr);
}
selectedSort(arr)
2. 冒泡排序
function bubbingSort(arr){
const len = arr.length
for(let i = len-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
}
3. 插入排序
// 原理:就是从一个未排序的数组中先从索引为1的开始 选为开始的值,然后让它与左侧的值进行比较 如果左侧的值比当前的start值还要大,把左侧位置的值插入到后面,然后在进行比较,如果前面的值没有比start值大,将当前的start值插到当前索引所表示的位置,则结束此次循环 从下一个索引继续重复执行以上的操作
let arr = [1, 3, 13, 41, 231, 421, 2, 3, 523]
function insertSort(arr) {
const len = arr.length
for (let i = 1; i < len; i++) {
const start = arr[i]
let j = i - 1
while (j >= 0 && arr[j] > start) {
arr[j + 1] = arr[j]
j--
}
arr[j + 1] = start
}
return arr
}
console.log(insertSort(arr));