Python 插入排序法


#插入排序法:

原理:是通過構建有序序列,對於未排序數據,在已排序序列中 從后向前 掃描,找到相應位置並插入。

#插入排序法一:有小到大排序

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])


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM