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 單個列表快速排序函式 返回一次排序後的列表和所選取基數...