Python 快速排序(QuickSort)

Posted wangyiyang

tags:

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

一、 算法描述:

先从数列中取出一个数作为基准数。

分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。

再对左右区间重复第二步,直到各区间只有一个数。

#!/usr/bin/python
# -*- coding: utf-8 -*-
def sub_sort(array,low,high):
    key = array[low]
    while low < high:
        while low < high and array[high] >= key:
            high -= 1
        while low < high and array[high] < key:
            array[low] = array[high]
            low += 1
            array[high] = array[low]
    array[low] = key
    return low

def quick_sort(array,low,high):
     if low < high:
        key_index = sub_sort(array,low,high)
        quick_sort(array,low,key_index)
        quick_sort(array,key_index+1,high)

if __name__ == '__main__':
    array = [8,10,9,6,4,16,5,13,26,18,2,45,34,23,1,7,3]
    print array
    quick_sort(array,0,len(array)-1)
    print array

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

python-快速排序

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

python实现快排算法(quicksort)

QuickSort 快速排序

如何干净地使用 QuickSort 对链表进行排序 - Python

快速排序(QuickSort),归并排序(MergeSort),堆排序(HeapSort)典型C++代码实现总结