1. 程式人生 > >算法----(5)插入排序

算法----(5)插入排序

for == size name number 序列 spa 指向 ont

從第一個元素開始,該元素可以認為已經被排序

取出下一個元素,在已經排序的元素序列中從後向前掃描

如果該元素(已排序)大於新元素,將該元素移到下一位置

重復步驟3,直到找到已排序的元素小於或者等於新元素的位置

將新元素插入到該位置後

重復步驟2~5

 1 L = [89,67,56,45,34,23,1]
 2 def direct_insert_sort(numbers):
 3   for i in range(1,len(numbers)):
 4     #temp變量指向尚未排好序元素(從第二個開始)
 5     temp = numbers[i]
 6
#j指向前一個元素的下標 7 j = i-1 8 #temp與前一個元素比較,若temp較小則前一元素後移,j自減,繼續比較 9 while j>=0 and temp<numbers[j]: 10 numbers[j+1]=numbers[j] 11 j = j-1 12 #temp所指向元素的最終位置 13 numbers[j+1] = temp 14 if __name__==__main__: 15 direct_insert_sort(L) 16 print(L)

算法----(5)插入排序