插入排序生活中非常常見,打撲克的時候人的本能就在用插入排序:把抽到的一張插入到手上牌的正確位置上。有兩種插入排序方法,一種基於比較,另一種基於交換。**程式設計客棧如下:
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 首先任意選取乙個資料 通常選用陣列的第乙個數 作為關鍵資料,然後將所有比它小的數都放到它前面,所有比它大的數都放到它後面,這個過程稱為一趟快速排序。值得注意的是,快速排序不是一種穩定的 排序...