經典演算法之直接插入排序

2022-04-10 09:42:49 字數 680 閱讀 3027

1、演算法思想

把待排序的元素插入已經排序的序列中。取第乙個元素為有序序列。從剩下的元素中依次取值和相鄰的元素作比較,找到合適的位置並插入。直至所有待排序的元素為有序序列。

2、**實現

1

#coding:utf-8

2def

inert_sort(lst):

3for i in range(1,len(lst)):

4if lst[i-1]>lst[i]:

5 tmp=lst[i]

6 seq=i

7while seq>0 and lst[seq-1]>tmp:

8 lst[seq]=lst[seq-1]

9 seq-=1

10 lst[seq]=tmp

11return

lst12

13if

__name__ == "

__main__":

14 a=inert_sort([1,5,7,6,2,0])

15print(a)

輸出:

[0, 1, 2, 5, 6, 7]

演算法之直接插入排序

演算法之直接插入排序簡介 直接插入排序 基本操作是將一條記錄插入到已排好的有序表中,從而得到乙個新的 記錄數量增1的有序表。參考 直接插入排序 基本操作是將一條記錄插入到已排好的有序表中,從而得到乙個新的 記錄數量增1的有序表。author zhang public class directinse...

演算法之直接插入排序

直接插入排序 straight insertion sort 的做法是 每次從無序表中取出第乙個元素,把它插入到有序表的合適位置,使有序表仍然有序。第一趟比較前兩個數,然後把第二個數按大小插入到有序表中 第二趟把第三個資料與前兩個數從前向後掃瞄,把第三個數按大小插入到有序表中 依次進行下去,進行了 ...

排序演算法之直接插入排序

直接插入排序 straight insertion sort 的基本思想 每次將乙個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子串行中的適當位置,直到全部記錄插入完成為止。設陣列為a 0 n 1 其中紅色區域為有序區域 1.初始時,a 0 自成1個有序區,無序區為a 1.n 1 a 0 a ...