插入排序(ts实现)
# 算法步骤
首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。
再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
重复第二步,直到所有元素均排序完毕。
# Code:
/**
@Project :插入排序
@IDE : WebStorm
@Author : xinyu
@Date :2022/3/2 下午5:33
@Description :插入排序
**/
import baseFunction = require("../utils/baseUtils");
let baseFunctions = new baseFunction()
let insertionSort=(array,compareFn = baseFunctions.defaultCompare)=>{
const {length} = array
let temp
for (let i = 0; i <length ; i++) {
let j=i;
temp =array[i];
while (j>0&&compareFn.call(baseFunctions,array[j-1],temp)===baseFunctions.Compare.BIGGER_THAN){
array[j]=array[j-1];
j--
}
array[j]=temp;
}
return array;
}
console.log(insertionSort(baseFunctions.testArray));
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
上次更新: 2023/09/05 17:45:42