快速排序 Python實現

2022-08-18 09:18:14 字數 901 閱讀 4756

1)、 演算法描述:

(1)先從數列中取出乙個數作為基準數。

(2)分割槽過程,將比這個數大的數全放到它的右邊,小於或等於它的數全放到它的左邊。

(3)再對左右區間重複第二步,直到各區間只有乙個數。

2)**:

def sub_sort(list1, low, height):

key = list1[low]

while low

< height:

while low

< height and list1[height] >= key:

height -= 1

while low

< height and list1[height] < key:

list1[low] = list1[height]

low += 1

list1[height] = list1[low]

list1[low] = key

return low

def quick_sort(list1, low, height):

if low

< height:

index_key = sub_sort(list1, low, height)

quick_sort(list1, low, index_key)

quick_sort(list1, index_key+1, height)

if __name__ == '__main__':

list1 = [8, 10, 9, 6, 4, 16, 5, 13, 26, 18, 2, 45, 34, 23, 1, 7, 3]

print(list1)

quick_sort(list1, 0, len(list1) - 1)

print(list1)

python實現快速排序

快速排序的思想是任意選取要排序的list中的乙個數pivot,每次遞迴時將list按照 小於pivot的,pivot,大於pivot的 排序,再對小於和大於pivot部分分別快速排序。function quicksort list select a pivot foreach x in list i...

Python實現快速排序

快速排序的思路 numlist 6,8,1,4,3,9,5,4,11,2,2,15,6 1 設 keys 又稱為監視哨 等於 numlist 0 i等於0 j等於len numlist 1,即如下 numlist 6,8,1,4,3,9,5,4,11,2,2,15,6 keys 6 i 0 j2 1...

python實現快速排序

coding utf 8 實現對列表中的數進行快速排序 importrandom 隨機生成乙個有1000整數的列表 number random.randint 1 1000 foriinrange 1000 列印原始列表 printnumber 單個列表快速排序函式 返回一次排序後的列表和所選取基數...