python 递归排序[通俗易懂]

python 递归排序[通俗易懂]python递归    对序列排序,使用二分冒泡排序,将序列分割为两部分    第一步:首先,设定一个初始值,假设为序列的第一个值,    第二步:将序列中大于初始值的值,放置于初始值的左边    第三步: 将序列中小于初始值的值,放置于初始值的右边    第四步:将序列一分为二,存放小值的列表作为一个列表进入递归…

大家好,又见面了,我是你们的朋友全栈君。

python 递归

       对序列排序,使用二分冒泡排序,将序列分割为 两部分

       第一步: 首先,设定一个初始值, 假设为 序列的第一个值,

       第二步: 将序列中 大于初始值的 值,放置于 初始值的左边

       第三步: 将序列中 小于初始值的 值,放置于 初始值的右边

       第四步: 将序列一分为二,存放小值的列表 作为一个列表 进入递归

                                                   存放大值的列表 作为一个列表 进入递归

       返回一个排好序的列表

def sort_list(lis, start, end):
    # 判断结束位置
    if start < end:
        i, j = start, end
        # 设置初始值
        base = lis[i]
        while i < j :
            # 此循环可将 序列分为两部分
            while i < j and lis[j] >= base:
                j = j - 1
            lis[i] = lis[j]
            
            while i < j and lis[i] <= base:
                i = i + 1
            lis[j] = lis[i]
        lis[i] = base
        
        
        # 将序列 一分为二 此为小值列表
        sort_list(lis, start, i-1)
        # 此为大值列表
        sort_list(lis, j+1, end)

    return lis

if __name__ == '__main__':
    lis = [1,2,3,5,7,11,4,6]
    sort_list(lis, 0, len(lis)-1)
    print(lis)

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/147843.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql删除约束

    mysql删除约束1、删除notnull约束altertable表名modify列名类型;2、删除unique约束altertable表名dropindex唯一约束名;3、删除primarykey约束altertable表名dropprimarykey;4、删除foreignkey约束altertable表名dropforeignkey外键名;…

    2022年6月24日
    26
  • redis info命令详解

    redis info命令详解

    2021年9月14日
    49
  • FCoin近1.3万BTC无法兑付,有人报案有人自救

    作者:邱祥宇继7.2亿代币销毁,三天三公告之后,FCoin又有新进展。2月17日晚上,张健在FCoin官网发布一篇名为《FCoin真相》的公告,对FCoin的现状、原因以及后续计划作出说…

    2022年4月9日
    55
  • linux终端怎么下载软件_linux查看文件类型

    linux终端怎么下载软件_linux查看文件类型今天小编要跟大家分享的文章是关于Linux终端下载文件的方法有哪些?如果您坚持使用Linux终端,例如在服务器上,该如何从终端下载文件?本文中你将学习两种在Linux中使用命令行下载文件的方法。我在这里使用的是Ubuntu,但除了安装之外,其余的命令同样适用于所有其他Linux发行版。一、使用wget命令从Linux终端下载文件wget可能是Linux和类UNIX系统中使用最多的命令行下载管理器。…

    2022年8月24日
    5
  • 计算机夏令营、预推免面试经验【北理cs,北航cs,复旦cs大数据,浙大cs】「建议收藏」

    计算机夏令营、预推免面试经验【北理cs,北航cs,复旦cs大数据,浙大cs】「建议收藏」这是一篇非寻常经验贴,因为今年疫情影响下的保研实在是太奇怪了,这里主要说说我了解到的一些学校的一些特点,可以做参考首先推荐一个计算机保研群,和各大机构的不一样,里边全是历届保研的同学们,大家都知道的很多,在这个群里我真的学到了不少,群主虎哥也很nice个人状况末流211物联网工程专业1/64夏令营入营:南方科技大学(优营)听说这个学校很有钱,这里有一个很好的老师,好像是搞,如果是冲老师去的可以报,但知名度实在不高,也没有牌子,自己权衡吧南开人工智能学院(杰出营员):感谢南开ai,是我梦开始

    2022年7月25日
    120
  • string转map_map转bean对象

    string转map_map转bean对象前提:String为Json类型字符串maven<dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.0</version></dependency>转换

    2025年10月24日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号