首页 > 编程语言 > 详细

Python 快速排序

时间:2018-03-04 11:08:53      阅读:223      评论:0      收藏:0      [点我收藏+]

最好情况:时间复杂度 O(nlog2n)
最坏情况:逆序序列,时间复杂度为O(n2)
平均时间复杂度:O(nlogn)
空间复杂度:O(nlog2n)
稳定性:不稳定

array_test = [5, 9, 10, 6, 5, 26, 17, 4, 11, 8]


def quick_sort(array, low, high):
    if low >= high:
        return

    key = array[low]
    start, end = low, high

    while low < high:
        while low < high and array[high] >= key:
            high -= 1
            
        if low < high:
            array[low] = array[high]
            low += 1

        while low < high and array[low] <= key:
            low += 1
            
        if low < high:
            array[high] = array[low]
            high -= 1

    array[low] = key
    
    quick_sort(array, start, low - 1)
    quick_sort(array, high + 1, end)
    return array


print(quick_sort(array_test, 0, len(array_test) - 1))

输出:[4, 5, 5, 6, 8, 9, 10, 11, 17, 26]

Python 快速排序

原文:https://www.cnblogs.com/yun-code/p/8503881.html

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