快速排序的python实现

Posted Small_office

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快速排序的python实现相关的知识,希望对你有一定的参考价值。

def quick_sort(array, left, right):
    if left < right:
        base_index = division(array, left, right)
        quick_sort(array, left, base_index - 1)  # 对小于基准值的再次进行分割
        quick_sort(array, base_index + 1, right)  # 对大于基准值的再次进行分割


def division(array, left, right):
    base_value = array[right]
    i = left
    for j in range(left, right):  # 遍历除最后一个元素的其他元素
        if array[j] <= base_value:  # 和基准值对比
            array[i], array[j] = array[j], array[i]  # 小于基准值,则替换到list前
            i += 1  # 替换过后,往后移一位,准备接受下次替换
    array[i], array[right] = array[right], array[i]  # 遍历完成后,将基准值放到所有小于它的值之后
    return i  # 返回基准值的index,用于分割列表


if __name__ == __main__:
    a = [random.randint(1, 1000) for i in range(50)]
    quick_sort(a, 0, len(a) - 1)
    print a

 

以上是关于快速排序的python实现的主要内容,如果未能解决你的问题,请参考以下文章

python实现快速排序归并排序

python实现快速排序归并排序

python实现快速排序归并排序

python实现快速排序归并排序

快速排序实现 - Python

python 三行代码实现快速排序