python挖坑法實現快排

2022-09-06 12:51:20 字數 744 閱讀 8898

快速排序

快速排序就是快

排序思路

python**示例:

lst = [5, 7, 4, 3, 1, 2, 9, 8]

defquick_sort(data, left, right):

if left mid =partition(data, left, right)

quick_sort(data, left, mid - 1)

quick_sort(data, mid + 1, right)

#挖坑**

#此函式執行結束後,左邊的數一定不大於tmp,右邊的數一定不小於tmp

defpartition(data, left, right):

tmp =data[left]

while left while left < right and data[right] >=tmp:

right -= 1data[left] =data[right]

while left < right and data[left] <=tmp:

left += 1data[right] =data[left]

data[left] =tmp

return

left

quick_sort(lst, 0, len(lst) - 1)

print

(lst)

#partition還有其它的寫法,這裡寫的是比較簡單的一種

面試題 快排挖坑法的應用

對乙個陣列按照給定的下標進行排序,僅僅使用兩兩交換的方式,要求不能對陣列進行擴容,盡可能少的額外空間。如 原陣列為a,b,c,d,e,現在給定的新位置為3,0,1,4,2,那麼排序後為d,a,b,e,c,void swapsort int parr,int ppos,int n 這是最近看到的一道面...

python實現快排演算法 python快排演算法詳解

快排是python經典演算法之一。1 下面講解的是什麼是快排和快排的圖示。2 快排是一種解決排序問題的運算方法。3 快排的原理 在陣列中任意選擇乙個數字作為基準,用陣列的資料和基準資料進行比較,比基準數字打的數字的基準數字的右邊,比基準數字小的數字在基準數字的左邊,第一次排序之後分為比基準資料大或比...

python實現快排

學習python,隨便寫了下快排,如下 coding utf 8 快速排序演算法實現 import sys sys.setrecursionlimit 1000000 設定最大遞迴深度,這裡設定為一百萬 def kuaipai ii,jj,data list global s s 1 記錄遞迴的深度...