使用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实现快速排序的主要内容,如果未能解决你的问题,请参考以下文章

python实现快速排序

为啥我的基数排序 python 实现比快速排序慢?

八大排序之快速排序算法-python实现

Python 实现快速排序和随机快速排序

使用python实现快速排序

快速排序方法——python实现