python排序搜尋基本演算法之歸併排序例項分析
歸併排序最令人興奮的特點是:不論輸入是什麼樣的,它對n個元素的序列排序所用時間與nlogn成正比。**如下:
# coding:utf-8
defmergesort(seq):
iflen(seq)<=1:
returnseq
mid=int(len(seq)/2)
left=mergesort(seq[:mid])
right=mergesort(seq[mid:])
returnmerge(left,right)
defmerge(left,right):
result=
i,j=0,0
whilei
ifleft[i]<=right[j]:i=1
else:j=1
result =left[i:]
result =right[j:]
returnresult
if__name__=='__main__':
print("指令碼之家測試結果:")
seq=[4,5,7,9,7,5,1,0,7,-2,3,-99,6]
print(mergesort(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排序搜尋基本演算法之插入排序例項分析
插入排序生活中非常常見,打撲克的時候人的本能就在用插入排序 把抽到的一張插入到手上牌的正確位置上。有兩種插入排序方法,一種基於比較,另一種基於交換。程式設計客棧如下 1.基於比較的插入排序 coding utf 8 def insertionsort seq length len seq for i...
基本排序演算法之快速排序
快速排序演算法是一種劃分交換的方法,它採用分治法進行排序。其基本思想是 設要排序的 陣列是a 0 a n 1 首先任意選取乙個資料 通常選用陣列的第乙個數 作為關鍵資料,然後將所有比它小的數都放到它前面,所有比它大的數都放到它後面,這個過程稱為一趟快速排序。值得注意的是,快速排序不是一種穩定的 排序...