#插入排序法:
原理:是通過構建有序序列,對於未排序數據,在已排序序列中 從后向前 掃描,找到相應位置並插入。
#插入排序法一:有小到大排序
def insertSort(arr):
n=len(arr) #獲取數列的元素個數
for i in range(1,n):
key=arr[i] #從數列的第二個元素開始,依次取出,與它的前面的元素值作比較
j=i-1 #獲取key前面的值的索引下標
while j>=0 and key < arr[j]:#判斷key與它前面的元素相比較,如果前面的值大於key
arr[j+1]=arr[j] #則把前面的值后移到key值的位置
j-=1 #獲取再前面的值的索引下標,實現key值與其前面的值的循環比較
arr[j+1]=key
#測試
arr=[12,11,13,5,6]
insertSort(arr)
for i in range(len(arr)):
print("%d" %arr[i])
#插入排序法二:有大到小排序
def insertSort(arr):
n=len(arr) #獲取數列的元素個數
for i in range(1,n):
key=arr[i] #從數列的第二個元素開始,依次取出,與它的前面的元素值作比較
j=i-1 #獲取key前面的值的索引下標
while j>=0 and key > arr[j]:#判斷key與它前面的元素相比較,如果前面的值大於key
arr[j+1]=arr[j] #則把前面的值后移到key值的位置
j-=1 #獲取再前面的值的索引下標,實現key值與其前面的值的循環比較
arr[j+1]=key
#測試
arr=[12,11,13,5,6]
insertSort(arr)
for i in range(len(arr)):
print("%d" %arr[i])