快速排序的程式碼及原理
阿新 • • 發佈:2020-07-20
一、快速排序的原理
主要是通過遞迴來實現快速排序。寫子函式,將資料(列表)的最左側位置的元素作為基數,將小於基數的元素放到左邊,大於基數的元素放到右邊,此時將基數的下標return回來。此時得到mid,左邊一部分資料和右邊一部分資料。通過遞迴實現子函式呼叫,將mid-1作為左邊這部分的右邊界,將mid+1作為右這部分的左邊界。
二、快速排序的程式碼
# 快排 重要字眼:基數、下標、邊界 def _quick_sort(li, left, right): tmp = li[left] while left < right: while left < right andli[right] > tmp: right -= 1 li[left] = li[right] while left < right and li[left] < tmp: left += 1 li[right] = li[left] li[left] = tmp return left def quick_sort(data, left, right): if left < right: mid = _quick_sort(data, left, right) #mid作為邊界 左邊的一部分,右邊的一部分。 quick_sort(data, left, mid-1) quick_sort(data, mid+1, right) dic = [5, 7, 1, 2, 3, 4, 8, 9, 6] quick_sort(data=dic, left=0, right=len(dic) - 1) print(dic)