一、执行流程图
每次都将后面没有排好序的元素插入到前面排好序的元素中
二、代码实现
def insertSort(nums):
n=len(nums) #数组的长度
for i in range(n-1):
curNum=nums[i+1] #无序区的第一个元素的值
idx=i #有序区的最后一个元素的索引
while nums[idx]>curNum and idx>=0:
nums[idx+1]=nums[idx] #把有序区的元素往后挪一位
idx-=1 #指针往前移,以此来从后往前遍历有序区
nums[idx+1]=curNum
test=[9,3,1,2,7,5]
insertSort(test)
print(test)
时间复杂度O(n^2)
稳定性:稳定