python實現插入排序演算法

2021-09-19 19:46:18 字數 735 閱讀 6272

插入排序,其原理是通過構建乙個初始的有序序列,然後從無需序列中抽取元素,插入到有序序列的相對排序位置,就像將一堆編號混亂的書,一本一本的放到書架上,找到上下編號之間的位置插入,最後完成整理。

python實現插入排序並不難,從第二個位置開始遍歷,與它前面的元素相比較,如果比前面元素小就交換位置,實現如下:

def

insert_sort

(items):

for i in range(1, len(items)):

# 從第i個元素開始向前比較,如果小於前乙個元素,交換位置

for j in range(i, 0, -1):

if items[j] 

items[j], items[j-1] = items[j-1], items[j]

插入排序的可應用於這樣的場景:需要合併兩個有序序列,並且合併後的序列依舊有序,此時插入排序可以排上用場。

如果目標是把n個元素的序列公升序排列,那麼採用插入排序存在最好情況和最壞情況。最好情況就是,序列已經是公升序排列了,在這種情況下,需要進行的比較操作需(n-1)次即可。

最壞情況就是,序列是降序排列,那麼此時需要進行的比較共有n(n-1)/2次。插入排序的賦值操作是比較操作的次數加上 (n-1)次。平均來說插入排序演算法的時間複雜度為o(n^2)。因而,插入排序不適合對於資料量比較大的排序應用

但是,如果需要排序的資料量很小,例如,量級小於千,那麼插入排序還是乙個不錯的選擇。

python實現插入排序演算法

插入排序,其原理是通過構建乙個初始的有序序列,然後從無需序列中抽取元素,插入到有序序列的相對排序位置,就像將一堆編號混亂的書,一本一本的放到書架上,找到上下編號之間的位置插入,最後完成整理。python實現插入排序並不難,從第二個位置開始遍歷,與它前面的元素相比較,如果比前面元素小就交換位置,實現如...

python實現插入排序演算法

插入排序,其原理是通過構建乙個初始的有序序列,然後從無需序列中抽取元素,插入到有序序列的相對排序位置,就像將一堆編號混亂的書,一本一本的放到書架上,找到上下編號之間的位置插入,最後完成整理。python實現插入排序並不難,從第二個位置開始遍歷,與它前面的元素相比較,如果比前面元素小就交換位置,實現如...

插入排序演算法 python實現

話不多說,直接上 def insert sort a lens len a for i in range 1 lens value a i j i 1while a j value and j 0 a j 1 a j j j 1 a j 1 value return a if name main b...