Python 演算法 - 快速排序
阿新 • • 發佈:2018-11-08
# coding=utf-8
# 快速排序
def quick_sort(lists, left, right):
"""
通過一趟排序將要排序的資料分割成獨立的兩部分,其中一部分的所有資料都比另外一部分的所有資料都要小,
然後再按此方法對這兩部分資料分別進行快速排序,整個排序過程可以遞迴進行,以此達到整個資料變成有序序列。
:param lists:
:param left:
:param right:
:return:
"""
if left >= right:
return lists
val = lists[left]
low = left
high = right
while left < right:
while left < right and lists[right] >= val:
right -= 1
lists[left] = lists[right]
while left < right and lists[left] <= val:
left += 1
lists[right] = lists[left]
lists[right] = val
quick_sort(lists, low, left - 1 )
quick_sort(lists, left + 1, high)
return lists