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)
上一篇 2022年6月29日 下午7:36
下一篇 2022年6月29日 下午7:46


相关推荐

  • 面试被问到HashMap 底层原理?看完这边文章绝对不慌!

    面试被问到HashMap 底层原理?看完这边文章绝对不慌!快速入门存储:put方法put(key,value)查询:get方法get(key)java代码如下importjava.util.HashMap;importjava.util.Map;publicclassApp{publicstaticvoidmain(String[]args){Map<String,String>map=newHashMap<>();map.put(“刘一”,

    2022年5月19日
    40
  • 使用Dependency Walker和dumpbin工具定位C++软件启动时找不到接口的报错问题

    使用Dependency Walker和dumpbin工具定位C++软件启动时找不到接口的报错问题本文详细介绍如何使用 DependencyWa 和 dumpbin 工具定位 C 软件启动时找不到接口的报错问题

    2026年3月19日
    1
  • windows/mfc程序中使用OpenGL的多重采样功能

    windows/mfc程序中使用OpenGL的多重采样功能windows程序中使用OpenGL的多重采样功能学过opengl基础的人都知道,glEnable(GL_POLYGON_SMOOTH)/glEnable(GL_LINE_SMOOTH)/glEnable(GL_POLYGON_SMOOTH)keyi欢迎使用Markdown编辑器你好!这是你第一次使用Markdown编辑器所展示的欢迎页。如果你想学习如何使用Markdown编辑器,…

    2022年5月11日
    45
  • python3.9多线程_python创建多线程

    python3.9多线程_python创建多线程什么是线程?线程也叫轻量级进程,是操作系统能够进行运算调度的最小单位,它被包涵在进程之中,是进程中的实际运作单位。线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其

    2022年7月28日
    8
  • pulsar简介

    pulsar简介这两年 pulsar 发展比较快 有好多大公司引入了 pulsar 相关的资料和课程也多了 今天一起来了解一下 pulsar 这款中间件 下图是几款消息中间件的历史 2012 年 pulsar 在 Yahoo 内部开发 2016 年开源并捐献给 Apache 2018 成为 Apache 顶级项目 1 架构 pulsar 的架构图如下 总结一下 pulsar 有下面的几个特性 1 1 计算存储分离 pulsar 采用计算和存储相分离的架构 Broker 集群负责把 producer 发出的消息发送给 consum

    2026年3月20日
    2
  • Datawhale AI夏令营 RAG篇 task2

    Datawhale AI夏令营 RAG篇 task2

    2026年3月12日
    2

发表回复

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

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