python 快速排序

2021-10-01 03:18:33 字數 954 閱讀 4107

** : 小婷兒的部落格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 從開始位置...