§01 排序算法
直接插入排序
维护一个"已有序前缀":每轮取出无序区第一个元素,与前面从后向前比较, 较大者逐个后移,直到找到合适位置插入。稳定排序,时间复杂度 O(n²), 数据基本有序时接近 O(n)。
插入排序
伪代码
1
procedure insertionSort(a, n)
2
for i = 2 to n do
3
temp = a[i]
4
j = i - 1
5
while j >= 1 and a[j] > temp do
6
a[j + 1] = a[j]
7
j = j - 1
8
end while
9
a[j + 1] = temp
10
end for
11
end procedure