插入排序
INSERTION-SORT
形式化描述
输入:n个数的一个序列<a1, a2, ..., an>
输出:输入序列的一个排列<a1', a2', ..., an'>,满足a1' <= a2' <= ... <= an'
伪代码
js
for i = 2 to A.length
key = A[i]
// 将 key(A[i])插入到已经排好序的 A[1..i-1]
j = i - 1
while j > 0 && A[j] > key
A[j + 1] = A[j]
j --
A[j + 1] = key
代码
javascript
function sort(A) {
if (A.length >= 2) {
for (let i = 1; i < A.length; i++) {
const key = A[i]
let j = i - 1
while (j >= 0 && A[j] > key) {
A[j + 1] = A[j]
j--
}
A[j + 1] = key
}
}
return A
}