栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

快速排序(quick sort)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

快速排序(quick sort)

快速排序:
时间复杂度:
最优时:O(nlog n)
最差时:O(n^2)
空间复杂度:
最好、一般时:O(log n)
最差时:O(n)

def partition(li,left,right):
    tmp = li[left]
    while left < right:
        while left < right and li[right] >= tmp: #从右边找比tmp小的数
            right -= 1 #往左走一步
        li[left] = li[right] # 把右边的值写到左边空位上
        while left < right and li[left] <= tmp: #从左面找比tmp小的数
            left += 1
        li[right] = li[left] #把左边的值写到右边空位上
    li[left] = tmp # 把tmp归位
    return left

def quick_sort(li,left,right):
    if left < right:
        mid = partition(li, left, right)
        quick_sort(li, left, mid-1)
        quick_sort(li, mid+1, right)

li = [5,7,4,6,3,1,2,9,8]
quick_sort(li, 0, len(li)-1)
print(li)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/313486.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号