使用python实现快速排序
Posted 做人要厚道2013
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用python实现快速排序相关的知识,希望对你有一定的参考价值。
def quick_sort(a, lo, hi):
if lo >= hi:
return
j = quick_partition(a, lo, hi)
quick_sort(a, lo, j - 1)
quick_sort(a, j + 1, hi)
# [10, 20, 10, 3, 10, 20, 7]
def quick_partition(a, lo, hi):
mid_value = a[lo]
# 左右扫描指针
i = lo + 1
j = hi
while True:
# 扫描左边
while a[i] <= mid_value and i < hi:
i += 1
# 扫描右边
while a[j] >= mid_value and j > lo:
j -= 1
if i >= j:
break
a[i], a[j] = a[j], a[i]
a[lo], a[j] = a[j], a[lo]
return j
if __name__ == "__main__":
a = [10, 10, 4, 3, 10, 4, 3, 10, 10, 4, 3, 10, 4]
print(a)
print(len(a))
quick_sort(a, 0, len(a) - 1)
print(a)
以上是关于使用python实现快速排序的主要内容,如果未能解决你的问题,请参考以下文章