Python排序搜尋基本演算法之插入排序例項分析

2022-10-04 20:39:19 字數 791 閱讀 1379

插入排序生活中非常常見,打撲克的時候人的本能就在用插入排序:把抽到的一張插入到手上牌的正確位置上。有兩種插入排序方法,一種基於比較,另一種基於交換。**程式設計客棧如下:

1.基於比較的插入排序:

# coding:utf-8

def insertionsort(seq):

length=len(seq)

for i in range(1,length):

tmp=seq[i]

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

if seq[j-1]>tmp:

seq[j]=seq[j-1]

else:

j+=1

break

seq[j-1]=tmp

if __name__=='__main__':

print("我們測試結果:")

seq=[8,6,4,9,7,3,2,-4,0,-100,99]

insertionsort(seq)

print(seq)

執行結果:

2.基於交換的插入排序:

# coding:utf-8

def insertionsort2(seq):

length=len(seq)

for i in range(1,length):

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

if seq[j]rnefp,5,9,8,4,2,1,0,-6,12,-8]

insertionsort2(seq)

print(seq)

執行結果:

Python排序搜尋基本演算法 之拓撲排序

拓撲排序是對有向無環圖的一種排序,滿足如下兩個條件 1.每個頂點出現且只出現一次 2.若a在序列中排在b的前面,則在圖中不存在從b到a的路徑。如上的無環有向圖,v表示頂點 v a b c d e e表示有向邊 e a b a d b c d c d e e c 如下 def indegree0 v,...

Python排序搜尋基本演算法之歸併排序例項分析

python排序搜尋基本演算法之歸併排序例項分析 歸併排序最令人興奮的特點是 不論輸入是什麼樣的,它對n個元素的序列排序所用時間與nlogn成正比。如下 coding utf 8 defmergesort seq iflen seq 1 returnseq mid int len seq 2 lef...

基本排序演算法之快速排序

快速排序演算法是一種劃分交換的方法,它採用分治法進行排序。其基本思想是 設要排序的 陣列是a 0 a n 1 首先任意選取乙個資料 通常選用陣列的第乙個數 作為關鍵資料,然後將所有比它小的數都放到它前面,所有比它大的數都放到它後面,這個過程稱為一趟快速排序。值得注意的是,快速排序不是一種穩定的 排序...