直接插入排序:
直接插入排序是一种简单直观的排序算法,它的基本思想是将一个元素插入到已经排好序的数组中的适当位置,使得插入后的数组仍然有序。具体步骤如下:
- 从第一个元素开始,认为第一个元素已经是排好序的数组。
- 取出下一个元素,在已经排好序的数组中从后往前依次与之比较,找到合适的位置插入。
- 重复上述步骤,直到所有元素都插入到合适的位置。
此过程相当于打扑克牌时的理牌
下面看示例代码:
def InsertSort(R):
for i in range(1,len(R)):
if R[i]<R[i-1]: ##反顺序时
temp=R[i] ##将无序区第一个元素拿出
j=i-1 ##在有序区(0,i-1)中找R【ℹ️】的位置
while True:
R[j+1]=R[j] ##大于temp的元素后移
j=j-1
if j<0 or R[j]<=temp:#若j<0或者R【j】<=temp,退出循环
break
R[j+1]=temp ##在j+1处插入R【i】
print(R)
R=[9,8,7,6,5,4,3,2,1]
InsertSort(R)
结果: