首页 > 编程语言 > 详细

快速排序-Python实现

时间:2018-11-12 23:32:34      阅读:178      评论:0      收藏:0      [点我收藏+]

1)、 算法描述:

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

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

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

2)代码:

def sub_sort(list1, low, height):
    key = list1[low]
    while low < height:
        while low < height and list1[height] >= key:
            height -= 1
        while low < height and list1[height] < key:
            list1[low] = list1[height]
            low += 1
            list1[height] = list1[low]
    list1[low] = key
    return low


def quick_sort(list1, low, height):
    if low < height:
        index_key = sub_sort(list1, low, height)
        quick_sort(list1, low, index_key)
        quick_sort(list1, index_key+1, height)


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

快速排序-Python实现

原文:https://www.cnblogs.com/wangchunli-blogs/p/9949572.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!