Python实现合并排序(归并排序)(一文看懂)

Python实现合并排序(归并排序)(一文看懂)1 归并排序原理归并排序采用分而治之的原理 一 将一个序列从中间位置分成两个序列 二 在将这两个子序列按照第一步继续二分下去 三 直到所有子序列的长度都为 1 也就是不可以再二分截止 这时候再两两合并成一个有序序列即可 2 一图以明之 3 Python 代码 defmerge a b c h j 0whil

欢迎关注公众号——《数据三分钟》

一线大厂的师兄师姐结合自己的工作实践,将数据知识浅显道来,每天三分钟,助你成为数据达人。还有面试指导和内推机会。

Python实现合并排序(归并排序)(一文看懂)

 

1、归并排序原理

     归并排序采用分而治之的原理:

     一、将一个序列从中间位置分成两个序列;

     二、在将这两个子序列按照第一步继续二分下去;

     三、直到所有子序列的长度都为1,也就是不可以再二分截止。这时候再两两合并成一个有序序列即可。

 

2、一图以明之   Python实现合并排序(归并排序)(一文看懂)

 

3、Python代码

  
def merge(a, b): c = [] h = j = 0 while j < len(a) and h < len(b): if a[j] < b[h]: c.append(a[j]) j += 1 else: c.append(b[h]) h += 1 if j == len(a): for i in b[h:]: c.append(i) else: for i in a[j:]: c.append(i) return c def merge_sort(lists): if len(lists) <= 1: return lists middle = len(lists)//2 left = merge_sort(lists[:middle]) right = merge_sort(lists[middle:]) return merge(left, right) if __name__ == '__main__': a = [14, 2, 34, 43, 21, 19] print (merge_sort(a))
  

 

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

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

(0)
上一篇 2026年3月18日 上午8:48
下一篇 2026年3月18日 上午8:48


相关推荐

  • VggNet介绍(1)

    VggNet介绍(1)一 背景介绍 vggnet 是由牛津大学视觉几何组和 googledeepmi 共同研发的模型 该模型在 2014Image 大赛上取得了分类任务的亚军和定位任务的冠军 其最主要的特点是 由 3 3 的卷积核和 2 2 的最大池化构成模型的主干网络 二 网络结构 1 vggnet 根据权重层层数的不同 可以分为 A B C D E F 五种模型 网络 A 共计 11 个权值层 8 个卷积层 3 个

    2026年3月26日
    2
  • python怎么群发邮件_python小白之实现群发邮件

    python怎么群发邮件_python小白之实现群发邮件2020 年 10 月 2 日前两天看到 kk 的公众号推送有一句话特别醒目努力是最不值得拿来夸口的东西 因为这是最基本的以前考研的时候所有驱动力都是 kk 的推送后来有了内在驱动力很少点开 kk 的推送了最好的摆渡人的结局今天发生了一件超级有趣的事情人生中第一次遇见跟我同名的人 在某大的群里哪怕姓不一样 性别也不一样 真的很少见我说好像和您同名他说 我的荣幸我回 荣幸之至然后有了对方的添加信息 我是 CSEP

    2026年3月19日
    2
  • 股票 数据接口(股票行情数据接口)

    最近股票大跌,打算做点数据分析。转个数据接口,等我完成数据分析有具体结论再写出来吧。做了一点股票分析数据准备,做了个均线图:http://stock.chenpeng.info/randomone查询股票走势请移步:http://stock.chenpeng.info/,搜索请输入代码或者股票名称。Sina股票数据接口eg:http://hq.sinajs.cn/li…

    2022年4月14日
    60
  • i2c时序图的详细讲解[通俗易懂]

     i2c简易时序图  启动信号:  SCL为高电平的时候,SDA由高电平向低电平跳变。结束信号:SCL为高电平的时候,SDA由低电平向高电平跳变。  应答信号:  I2C总线上的所有数据都是以8位字节传送的,发送器每发送一个字节,就在时钟脉冲9期间释放数据线,由接收器反馈一个应答信号。应答信号为低电平时,规定为有效应答位(ACK简称应答位),表示接收器已经成功地接收了该字节;应答信号为高电平时,规…

    2022年4月14日
    831
  • python技巧(setdefault 与 defaultdict)

    python技巧(setdefault 与 defaultdict)转自 https mp weixin com s DFF8sRSW7W4n 从题目引出 data p 1 p 2 p 3 h 1 h 2 h 3 要转换成 result p 1 2 3 h 1 2 3 一般都会用的方法 d

    2026年3月19日
    2
  • Chainlit前端调用ERNIE-4.5-0.3B-PT全流程:从日志验证到多轮对话实战

    Chainlit前端调用ERNIE-4.5-0.3B-PT全流程:从日志验证到多轮对话实战

    2026年3月13日
    3

发表回复

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

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