** : 小婷兒的部落格python
快速排序採用了分治的策略。他的基本思想是將需要排序的資料分割為兩部分,其中一部分的所有資料都比另一組的資料小,然後對這兩部分進行遞迴,最終整個資料變為有序序列
在數列之中,選擇乙個元素作為」基準」,或者叫比較值。
數列中所有元素都和這個基準值進行比較,如果比基準值小就移到基準值的左邊,如果比基準值大就移到基準值的右邊
以基準值左右兩邊的子列作為新數列,不斷重複第一步和第二步,直到所有子集只剩下乙個元素為止。
import random
import time
def outer(f):
def inner(lst):
t1 = time.time()
a = f(lst)
print(time.time()-t1)
return a
return inner
@outer
def quick_sort(lst):
l = len(lst)
if l<2:# 當列表中只有乙個值時表示有序,返回
python快速排序排序 python快速排序
import random def rand n for i in range n yield random.randint 0,1000 建立乙個隨機數列表 def createlist n lists for i in rand n return lists 挖坑法快速排序 def quick ...
排序 快速排序 Python
快速排序 快排 是非常常用的排序方法,在技術面試中出現頻率也特別高。它主要採用交換和分治的策略進行排序。是不穩定排序。步驟 1 在序列中選乙個元素作為劃分的基準元素 pivot 2 將所有不大於pivot的數字放在pivot的前面,大於pivot的數字放在pivot的後面 3 以pivot為界,對前...
python快速排序
coding utf 8 class quicksort def sort self,list,left,right 開始位置小於 位置 if left 取到中間的乙個下標值 s list left right 2 i 0 i left j 下標結束 j right while true 從開始位置...