python 實現快速排序

2021-08-16 21:02:39 字數 902 閱讀 8311

參考的部落格  

from__future__importprint_function

a = [72,6,57,88,60,42,83,73,48,85]

defquick_sort(a,l,r):

ifl #取得基數

whileindexi < indexj:

whileindexi < indexjanda[indexj] >= x:

indexj -= 1

if(indexi < indexj):

a[indexi] = a[indexj]

indexi += 1

whileindexianda[indexi] < x:

indexi += 1

ifindexi < indexj:

a[indexj] = a[indexi]

indexj -=1

a[indexi] = x

quick_sort(a,l,indexi-1)

quick_sort(a,indexi+1,r)

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

print(a)

總結 :首先說一下,在進行陣列傳遞的時候,一定不要用 python 的切片,a 作為引數傳遞和 a[:5] 作為引數傳遞是有區別的,後者是複製了乙個副本,所以會導致你把副本已經排序了,但是原版本還是沒有改變 

python實現快速排序

快速排序的思想是任意選取要排序的list中的乙個數pivot,每次遞迴時將list按照 小於pivot的,pivot,大於pivot的 排序,再對小於和大於pivot部分分別快速排序。function quicksort list select a pivot foreach x in list i...

Python實現快速排序

快速排序的思路 numlist 6,8,1,4,3,9,5,4,11,2,2,15,6 1 設 keys 又稱為監視哨 等於 numlist 0 i等於0 j等於len numlist 1,即如下 numlist 6,8,1,4,3,9,5,4,11,2,2,15,6 keys 6 i 0 j2 1...

python實現快速排序

coding utf 8 實現對列表中的數進行快速排序 importrandom 隨機生成乙個有1000整數的列表 number random.randint 1 1000 foriinrange 1000 列印原始列表 printnumber 單個列表快速排序函式 返回一次排序後的列表和所選取基數...