Python學習 快排

2021-10-14 23:16:08 字數 905 閱讀 1214

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個元素冒泡到陣列的一端,而快速排序是 每一輪挑選乙個基準元素,讓比基準元素大的元素移動到陣列的一邊,比基準元素小的移動到陣列的另外一端,從而把陣列拆解成兩部分。舉例說...