插入算法:对比模型,原数组排序,稳定,慢,O(n^2),O(1)
插入法并不在于如何按顺序的“取”,而在于如何按顺序的“插”。顺序选取最值,依次换位排序。
python程序如下:
insert = [int(each) for each in input().split()]
def InsertSort(s):
len_s = len(s)
if len_s == 0 or len_s == 1:
return s
for i in range(1,len_s):
temp = s[i]
j = i-1
while j >= 0 and s[j] < temp:
s[j+1] = s[j]
j -= 1
s[j+1] = temp
return s
print(InsertSort(insert))
案例:
8 6 9 5 4 1 2 3 5 4 6 2 1
[9, 8, 6, 6, 5, 5, 4, 4, 3, 2, 2, 1, 1]