位置: 编程技术 - 正文

Python编程中归并排序算法的实现步骤详解(归并代码)

编辑:rootadmin

推荐整理分享Python编程中归并排序算法的实现步骤详解(归并代码),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python数据合并的主要函数有哪些?,归并算法python,python合并数据集,python 归并排序详解,归并算法python,python数据合并的主要函数有哪些?,python中的并,python 归并排序详解,内容如对您有帮助,希望把文章链接给更多的朋友!

基本思想:归并排序是一种典型的分治思想,把一个无序列表一分为二,对每个子序列再一分为二,继续下去,直到无法再进行划分为止。然后,就开始合并的过程,对每个子序列和另外一个子序列的元素进行比较,依次把小元素放入结果序列中进行合并,最终完成归并排序。归并操作过程:

申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列设定两个指针,最初位置分别为两个已经排序序列的起始位置比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置重复步骤3直到某一指针达到序列尾将另一序列剩下的所有元素直接复制到合并序列尾上述说法是理论表述,下面用一个实际例子说明:

例如一个无序数组

首先将这个数组通过递归方式进行分解,直到:

然后开始合并排序,也是用递归的方式进行:

两个两个合并排序,得到:

上一步中,其实也是按照本步骤的方式合并的,只不过由于每个list中一个数,不能完全显示过程。下面则可以完全显示过程。

初始:

Python编程中归并排序算法的实现步骤详解(归并代码)

第1步,顺序从a,b中取出一个数字:2,1 比较大小后放入c中,并将该数字从原list中删除,结果是:

第2步,继续从a,b中按照顺序取出数字,也就是重复上面步骤,这次是:2,3 比较大小后放入c中,并将该数字从原list中删除,结果是:

第3步,再重复前边的步骤,结果是:

最后一步,将6追加到c中,结果形成了:

通过反复应用上面的流程,实现[1,2,3,6]与[7]的合并

最终得到排序结果

本文列举了三种python的实现方法:

方法1:将前面讲述的过程翻译过来了,略先拙笨

方法2:在按照顺序取数值方面,应用了list.pop()方法,代码更紧凑简洁

方法3:原来在python的模块heapq中就提供了归并排序的方法,只要将分解后的结果导入该方法即可。

使用Python判断质数(素数)的简单方法讲解 质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。素数在数论中有着很重要的地位。比1大但不是素数的

Python环境下搭建属于自己的pip源的教程 一、安装pip2pi工具:pipinstallpip2pi或:

Python使用Paramiko模块编写脚本进行远程服务器操作 简介:paramiko是python(2.2或更高)的模块,遵循SSH2协议实现了安全(加密和认证)连接远程机器。安装所需软件包:

标签: 归并代码

本文链接地址:https://www.jiuchutong.com/biancheng/386144.html 转载请保留说明!

上一篇:Python手机号码归属地查询代码(python 电话号码)

下一篇:使用Python判断质数(素数)的简单方法讲解(python函数判断质数)

  • 减免税流程
  • 工程结算时如何确认收入
  • 企业缴纳个人所得税比例
  • 作废的发票要拿出来吗
  • 不认证的发票可以抵扣吗
  • 电梯广告租赁属于哪类
  • 签劳务合同需要什么资质
  • 处置投资性房地产的损益怎么算
  • 提供洒水车服务税率
  • 买房时有哪些税要交
  • 专票只有抵扣联发票联丢失怎么办
  • 通讯费可以个人承担吗
  • 原始凭证审核的内容
  • 固定资产机械设备
  • 房地产退房款会计分录
  • 如何确认增值税纳税义务发生时间
  • 加了一年的油
  • 企业收到分红款要交税吗
  • 滞留发票是什么意思
  • 2018税务金四发展预测会有哪些?
  • word字体平滑
  • 附加税会计分录2022
  • window的hosts文件
  • 员工的餐费补助怎么算
  • win10如何给文件夹上锁
  • 顿号用键盘怎么输入
  • 前端框架view
  • NJeeves.exe - NJeeves进程文件是什么意思 有什么用
  • 公司为员工投保意外险,意外险赔付给谁
  • vue页面路由传参
  • 投资收益结转到哪个科目
  • php动态读取数据的代码
  • php include require
  • 银行承兑汇票贴现率是多少
  • PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID
  • 建行e信通怎么提现怎么操作
  • 建筑业成本核算流程
  • 城镇土地使用税每年都要交吗
  • 购扶贫产品怎么记账
  • 小企业会计准则和企业会计准则的区别
  • 工程类什么情况下可以三方询价
  • chrome网上应用商店在哪
  • mongodb 入门
  • 公司车辆过户给个人需要多少费用
  • 实收资本库存现金凭证怎么开
  • 金税四期的主要功能
  • 小规模纳税人批发零售税率
  • 合伙企业费用汇总表
  • 自产产品对外捐赠确认收入吗
  • 堤围防护费是什么
  • 公司举行活动发言稿范文
  • 关于发票冲账应该怎么写
  • 库存商品坏账准备怎么算
  • 毁损的原材料怎么处理
  • 小规模企业发票税率是多少
  • 如何结转生产成本及制造费用
  • 故意销毁会计凭证、会计账簿罪
  • 建账过程中应注意的事项
  • sqlserver日志已满
  • sql行变列有几种方法
  • 重装系统后没声音怎么解决win7
  • winxp怎样设置网络
  • mac隐藏菜单栏
  • win7系统笔记本怎么连接wifi
  • linux中make
  • linux如何直接访问gpio不用设备树
  • unity连接
  • unity fixed update
  • Android开发工具
  • js获取上传文件的大小
  • jQuery使用zTree插件实现树形菜单和异步加载
  • jquery定位
  • json convert
  • 与税务有关的公需课
  • 吉林省地税局电话号码
  • 贵州企业申报系统
  • 林则徐家训带来的启示
  • 010是哪个市区的电话号码
  • 杭州 国税
  • 经营工作会议
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设