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

Python 快速排序

时间:2018-03-04 11:44:46      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:gpo   nlog   最好   空间复杂度   post   source   star   空间   tar   

最好情况:时间复杂度 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 快速排序

标签:gpo   nlog   最好   空间复杂度   post   source   star   空间   tar   

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

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