演算法 5 插入排序

2022-02-24 15:35:50 字數 690 閱讀 2215

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

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

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

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

將新元素插入到該位置後

重複步驟2~5

1 l = [89,67,56,45,34,23,1]

2def

direct_insert_sort(numbers):

3for i in range(1,len(numbers)):4#

temp變數指向尚未排好序元素(從第二個開始)

5 temp =numbers[i]6#

j指向前乙個元素的下標

7 j = i-18#

temp與前乙個元素比較,若temp較小則前一元素後移,j自減,繼續比較

9while j>=0 and temp10 numbers[j+1]=numbers[j]

11 j = j-112#

temp所指向元素的最終位置

13 numbers[j+1] =temp

14if

__name__=='

__main__':

15direct_insert_sort(l)

16print(l)

插入排序演算法

插入排序演算法 思想 把排序過程看作是序列單個有序擴充套件為整體有序的過程,即首先取序列第二個元素與第乙個元素比較,將其插入合適位置,再將第三個元素與前兩個元素比較,將其插入合適位置,如此進行,直到最後取第n個元素與前n 1個元素進行比較並將其插入合適位置。演算法 建立日期 2004 12 14 插...

演算法 插入排序

include include 插入排序 n 2為的效率。具體思想 將陣列分為兩部分,一部分是有序的,一部分為無序的 然後從無序中選取乙個數插入在有序的數中的恰當的位置,以此迭代,直到無序的數全部遍厲完畢 void insert sort int a,int n a j tmp break retu...

插入排序演算法

下面這段話摘自 一般來說,插入排序都採用in place在陣列上實現。具體演算法描述如下 從第乙個元素開始,該元素可以認為已經被排序 取出下乙個元素,在已經排序的元素序列中從後向前掃瞄 如果該元素 已排序 大於新元素,將該元素移到下一位置 重複步驟3,直到找到已排序的元素小於或者等於新元素的位置 將...