插入排序的时间复杂度为
O
(
n
2
)
O(n^2)
O(n2),in-place 排序方法,空间复杂度为常数,属于稳定排序,在数组长度较小时,排序效果很好。
具体的python实现如下:
def InsertSort(array):
for i in range(1,len(array)):
key = array[i]
while i>0 and key<array[i-1]:
array[i] = array[i-1]
i -= 1
array[i] = key
return array
这里把i
理解为key
应该插入的位置,while
语句寻找正确的插入位置,如果位置不合适,即key<array[i-1]
,那么就前面的元素往后挪,接着找。注意从第二个元素开始进行插入排序。