一.排序原理
以从小到大排序为例,元素0为第一个元素,插入排序是从元素1开始,尽可能插到前面。插入时分插入位置和试探位置,元素i的初始插入位置为i,试探位置为i-1,在插入元素i时,依次与i-1,i-2······元素比较,如果被试探位置的元素比插入元素大,那么被试探元素后移一位,元素i插入位置前移1位,直到被试探元素小于插入元素或者插入元素位于第一位。
--------------------- 本文来自 群星坠 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/qq_35603331/article/details/79618513?utm_source=copy
def insertSort(arr):
length = len(arr)
for i in range(1,length):
x = arr[i]
for j in range(i,-1,-1):
# j为当前位置,试探j-1位置
if x < arr[j-1]:
arr[j] = arr[j-1]
else:
# 位置确定为j
break
arr[j] = x
def printArr(arr):
for item in arr:
print(item, end=" ")
arr = [90, 61, 51, 40, 49, 77, 15, 100, 56, 19]
insertSort(arr)
printArr(arr)
结果:
15 19 40 49 51 56 61 77 90 100