python 實現快速排序

2021-10-01 13:20:41 字數 927 閱讀 5365

從待排序列中挑出乙個元素,作為"基準"(pivot),通過一趟排序,把所有比基準值小的元素放在基準前面,所有比基準值大的元素放在基準的後面(相同的數可以到任一邊),這個稱為分割槽(partition)操作。對前後兩個區間重複此操作,直到前後分割槽的帶下是0或1結束。每一次都確定待排序列中乙個元素的位置。

def quicksort(input_list, left, right):

def divsion(input_list, left, right):        # pivot為基準        # pivot = input_list[left]        while left < right:            while left = input_list[left]:                right -= 1            # 找到乙個元素小於基準元素,則把該元素放在前面            t=input_list[left]            input_list[left] = input_list[right]            input_list[right]=t            while left < right and input_list[left] <= input_list[right]:                left += 1            # 找到乙個元素大於基準元素,則把該元素放到後面            t = input_list[right]            input_list[right] = input_list[left]            input_list[left]=t        # 當left = right,即此時,left位置的左邊都比基準元素小,        #left元素右邊都比基準元素大,此時把基準元素放入該位置,        # 即該位置就是基準元素的最終排序位置        return left    if left 

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