原理:从第一个元素开始,左边视为已排序数组,右边视为待排序数组,从左往右依次取元素,插入左侧已排序数组,对插入新元素的左侧数组重新生成有序数组
class solution(object):
def inserSort(self,array):
for i in range(1, len(array)):
if array[i - 1] > array[i]:
temp = array[i] # 当前需要排序的元素
index = i # 用来记录排序元素需要插入的位置
while index > 0 and array[index - 1] > temp:
array[index] = array[index - 1] # 把已经排序好的元素后移一位,留下需要插入的位置
index -= 1
array[index] = temp # 把需要排序的元素,插入到指定位置
return array