快速排序就是每次都先從列表裡面選出乙個基準值,再把列表中的其他元素與它進行對比,比它大的放在右邊組成乙個a列表,比它小的放在左邊組成乙個b列表。基準值的選取最簡單的就是選擇列表的第乙個元素,也可以隨機選取,選擇第乙個容易照成複雜度高一點,隨機的話可能更容易得到平均的計算複雜度的時間,直到結束,結束的時候列表中就是已經排好序的元素。
# 選擇列表中的第乙個數作為基準值
a_list = [4, 23, 5, 6, 43, 14, 9, -23, 2, 6]
def quick_sort(a_list):
if a_list == :
return
else:
pivot = a_list[0]
lesser = quick_sort([x for x in a_list[1:] if x < pivot])
greater = quick_sort([x for x in a_list[1:] if x >= pivot])
return lesser + [pivot] + greater
print(quick_sort(a_list))
[-23, 2, 4, 5, 6, 6, 9, 14, 23, 43]
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個元素冒泡到陣列的一端,而快速排序是 每一輪挑選乙個基準元素,讓比基準元素大的元素移動到陣列的一邊,比基準元素小的移動到陣列的另外一端,從而把陣列拆解成兩部分。舉例說...