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

2022-08-26 12:21:10 字數 651 閱讀 3897

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 首先任意選取乙個資料 通常選用陣列的第乙個數 作為關鍵資料,然後將所有比它小的數都放到它前面,所有比它大的數都放到它後面,這個過程稱為一趟快速排序。值得注意的是,快速排序不是一種穩定的 排序...