直观的讲,插入排序算法是把给定数组中的元素依次插入到一个新的数组中,最终得到一个完整的有序数组。
具体实现步骤为:
首先我们把整个数组拆分为有序区间和未排序区间,有序区间在插入排序一开始只有一个元素,就是数组的第一个元素。
接在有序区间之后的一个元素就是准备插入的元素,在有序区间内寻找位置并插入。
其寻找逻辑为:从后往前依次进行比较,如果待插入元素大于当前元素,则将待插入元素插入到当前元素的后一位,如果待插入元素小于当前元素,则将当前元素后移一位。不断重复该过程直至到数组的最后一位。
代码实现:
nums = [5,3,6,4,1,2,8,7]
for i in range(1,len(nums)):
for j in range(i):
if nums[j]>nums[i]:
ins = nums[i]
nums.pop(i)
nums.insert(j,ins)
break
print(nums)