python归并排序算法过程实例讲解


Posted in Python onNovember 04, 2020

关于python的算法一直都是让我们又爱又恨,但是如果可以灵活运用起来,对我们的编写代码过程,可以大大提高效率,针对算法之一“归并排序”的灵活掌握,一起来看下吧~

归并算法——小试牛刀

实例内容:

1 个无序列表如下:

list = [23,35,12,34,54,78,76,99]

要求:使其按从小到大排序

图示思路

python归并排序算法过程实例讲解

Python 代码

python归并排序算法过程实例讲解

归并排序理解:

1.通过二分法把一个数组按照递归拆分为左右两组(至到独立元素为止)

2.按照从底层往高层的方法左右数组对比,同时对两个数组的第一个位置进行比大小,将小的放入一个空数组,然后被放入空数组的那个位置的指针往后移一个,然后继续和另外一个数组的上一个位置进行比较,以此类推。到最后任何一个数组先出栈完,就将另外i一个数组里的所有元素追加到新数组后面。

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__': 
= [4, 7, 8, 3, 5, 9]
print merge_sort(a)

到此这篇关于python归并排序算法过程实例讲解的文章就介绍到这了,更多相关python归并排序算法过程图示详解内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
简单讲解Python中的字符串与字符串的输入输出
Mar 13 Python
Python遍历目录并批量更换文件名和目录名的方法
Sep 19 Python
Python 由字符串函数名得到对应的函数(实例讲解)
Aug 10 Python
使用C++扩展Python的功能详解
Jan 12 Python
Python3 XML 获取雅虎天气的实现方法
Feb 01 Python
使用EduBlock轻松学习Python编程
Oct 08 Python
python集合的创建、添加及删除操作示例
Oct 08 Python
keras-siamese用自己的数据集实现详解
Jun 10 Python
在 Python 中使用 MQTT的方法
Aug 18 Python
django项目中使用云片网发送短信验证码的实现
Jan 19 Python
python 模块导入问题汇总
Feb 01 Python
python 第三方库paramiko的常用方式
Feb 20 Python
Numpy数组的广播机制的实现
Nov 03 #Python
基于Python组装jmx并调用JMeter实现压力测试
Nov 03 #Python
Python os库常用操作代码汇总
Nov 03 #Python
如何基于Python爬虫爬取美团酒店信息
Nov 03 #Python
python import 上级目录的导入
Nov 03 #Python
详解Python利用configparser对配置文件进行读写操作
Nov 03 #Python
Python抓包并解析json爬虫的完整实例代码
Nov 03 #Python
You might like
php从memcache读取数据再批量写入mysql的方法
2014/12/29 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
不用MOUSEMOVE也能滑动啊
2007/05/23 Javascript
也说JavaScript中String类的replace函数
2011/09/22 Javascript
JavaScript高级程序设计 阅读笔记(十七) js事件
2012/08/14 Javascript
[JSF]使用DataModel处理表行事件的实例代码
2013/08/05 Javascript
JavaScript动态创建div属性和样式示例代码
2013/10/09 Javascript
JavaScript入门基础
2015/08/12 Javascript
数据分析软件之FineReport教程:[5]参数界面JS(全)
2015/08/13 Javascript
input点击后placeholder中的提示消息消失
2016/01/15 Javascript
基于JavaScript实现百叶窗动画效果不只单纯flas可以实现
2016/02/29 Javascript
关于原生js中bind函数的简单实现
2016/08/10 Javascript
浅谈super-vuex使用体验
2018/06/25 Javascript
用图片替换checkbox原始样式并实现同样的功能
2018/11/15 Javascript
vue全局使用axios的方法实例详解
2018/11/22 Javascript
性能优化篇之Webpack构建速度优化的建议
2019/04/03 Javascript
了解JavaScript函数中的默认参数
2019/05/30 Javascript
使用js实现一个简单的滚动条过程解析
2019/09/10 Javascript
selenium 反爬虫之跳过淘宝滑块验证功能的实现代码
2020/08/27 Javascript
[47:38]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
浅析Python的Django框架中的Memcached
2015/07/23 Python
Python IDE PyCharm的基本快捷键和配置简介
2015/11/04 Python
python中星号变量的几种特殊用法
2016/09/07 Python
python爬虫爬取快手视频多线程下载功能
2018/02/28 Python
在python中实现强制关闭线程的示例
2019/01/22 Python
Django 大文件下载实现过程解析
2019/08/01 Python
Python多线程实现支付模拟请求过程解析
2020/04/21 Python
影视制作岗位职责
2013/12/04 职场文书
学生出入校管理制度
2014/01/16 职场文书
房产委托公证书
2014/04/08 职场文书
经典的毕业生自荐信范文
2014/04/14 职场文书
查摆问题对照检查材料
2014/08/28 职场文书
2014年预备党员群众路线教育实践活动对照检查材料思想汇报
2014/10/02 职场文书
教师个人事迹材料
2014/12/17 职场文书
消防隐患整改通知书
2015/04/22 职场文书
javascript之Object.assign()的痛点分析
2022/03/03 Javascript