def
partition
(arr, low, high)
:# 移動值設定
i = low -
1# 參考值設定
pivot = arr[high]
for j in
range
(low, high)
:# 這裡的判斷比基準值小就交換i和j
if arr[j]
<= pivot:
i = i +
1 arr[i]
, arr[j]
= arr[j]
, arr[i]
# 最後還有基準值沒有判斷,i + 1對應的值一定比基準值大
arr[i +1]
, arr[high]
= arr[high]
, arr[i +1]
# i + 1左邊最大,一定比右邊最小要小
return i +
1def
quick_sort
(arr, low, high)
:if low < high:
pi = partition(arr, low, high)
quick_sort(arr,
0, pi -1)
quick_sort(arr, pi +
1, high)
arr =[1
,5,3
,9,7
,10,20
,11]quick_sort(arr,0,
len(arr)-1
)for x in
range
(len
(arr)):
print
('%d'
% arr[x]
)
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 記錄遞迴的深度...
快排 Python實現
同氣泡排序 上篇博文 一樣,快速排序也屬於交換排序,通過元素之間的比較與交換位置來達到排序的目的。不同的是,氣泡排序在每一輪中只是把1個元素冒泡到陣列的一端,而快速排序是 每一輪挑選乙個基準元素,讓比基準元素大的元素移動到陣列的一邊,比基準元素小的移動到陣列的另外一端,從而把陣列拆解成兩部分。舉例說...