码迷,mamicode.com
首页 > 编程语言 > 详细

Python 快速排序(QuickSort)

时间:2020-01-14 16:03:34      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:取出   turn   过程   算法   utf-8   它的   __name__   quic   个数   

一、 算法描述:

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

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

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

#!/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)

标签:取出   turn   过程   算法   utf-8   它的   __name__   quic   个数   

原文地址:https://www.cnblogs.com/wangyiyang/p/12192299.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!