# coding:utf-8# 實現對列表中的數進行快速排序
importrandom
# 隨機生成乙個有1000整數的列表
number = [random.randint(1
,1000)foriinrange(1000)]
# 列印原始列表
printnumber
# 單個列表快速排序函式(返回一次排序後的列表和所選取基數的位置)
defpaixu(listnumber
, i, j, k):
whilei <= j:
whilei <= j:
ifnumber[j] < number[k]:
number[j], number[k] = number[k], number[j]
k = j
j -= 1
breakelse:
j -= 1
whilei <= j:
ifnumber[i] > number[k]:
number[i], number[k] = number[k], number[i]
k = i
i += 1
breakelse:
i += 1
returnnumber, k
# 主函式
if__name__ == '__main__':
start_end_list = # 儲存左右列表區間
,len(number)-1))
start_end_list_temp =
# 遍歷,直至各個列表區間左右部分相同
whilestart_end_list:
foriinstart_end_list:
ifi[0] == i[1]:
continuenumber, k = paixu(number,i[0],i[1],i[0])
ifi[0] <= k-1:
ifk+1
<= i[1]:
,i[1]))
start_end_list = start_end_list_temp
start_end_list_temp =
# 輸出快速遍歷後的列表
printnumber
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 實現快速排序
參考的部落格 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...