时间复杂度O(n^2)
稳定排序
插入排序可视化
分析
代码
def insertSort(nums):
pass
n = len(nums)#数组长度
for i in range(n-1):#n个元素需要n-1趟排序
val = nums[i + 1] # 无序区的第一个元素
idx = i# 有序区的最后一个元素的索引
while nums[idx]>val and idx>= 0:#从后向前判断整个有序区元素的值 是否比val大 idx小于0 停止
nums[idx + 1] = nums[idx] # 把有序区的元素往后挪一位
idx -= 1#索引向前移,以遍历所有的有序区
nums[idx+1] = val #找到了val要插入的合适位置,插入赋值
nums = [9,3,1,2,7,5]
insertSort(nums)
print(nums)