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解析xml成对应的html示例分享
Apr 02 Python
简单解析Django框架中的表单验证
Jul 17 Python
解决Python requests 报错方法集锦
Mar 19 Python
python利用标准库如何获取本地IP示例详解
Nov 01 Python
pandas 条件搜索返回列表的方法
Oct 30 Python
python实现自动化上线脚本的示例
Jul 01 Python
Python实现微信翻译机器人的方法
Aug 13 Python
python根据时间获取周数代码实例
Sep 30 Python
python 协程中的迭代器,生成器原理及应用实例详解
Oct 28 Python
关于Python-faker的函数效果一览
Nov 28 Python
Python selenium自动化测试模型图解
Apr 15 Python
Python StringIO及BytesIO包使用方法解析
Jun 15 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 图像处理类1
2009/06/15 PHP
php+mysql事务rollback&amp;commit示例
2010/02/08 PHP
php数组函数序列之rsort() - 对数组的元素值进行降序排序
2011/11/02 PHP
基于Zend的Config机制的应用分析
2013/05/02 PHP
8个PHP程序员常用的功能汇总
2014/12/18 PHP
PHP正则表达式之捕获组与非捕获组
2015/11/06 PHP
详解PHP的抽象类和抽象方法以及接口总结
2019/03/15 PHP
Laravel框架验证码类用法实例分析
2019/09/11 PHP
jQuery 注意事项 与原因分析
2009/04/24 Javascript
JavaScript Object的extend是一个常用的功能
2009/12/02 Javascript
javascript静态页面传值的三种方法分享
2013/11/12 Javascript
javascript实现带下拉子菜单的导航菜单效果
2015/05/14 Javascript
Jquery 1.9.1源码分析系列(十二)之筛选操作
2015/12/02 Javascript
jQuery实现无限往下滚动效果代码
2016/04/16 Javascript
JS访问DOM节点方法详解
2016/11/29 Javascript
基于vue实现分页效果
2017/11/06 Javascript
angularjs实现时间轴效果的示例代码
2017/11/29 Javascript
JavaScript EventEmitter 背后的秘密 完整版
2018/03/29 Javascript
Vue实现自定义下拉菜单功能
2018/07/16 Javascript
[53:20]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 VG vs OG
2018/04/03 DOTA
python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
2014/02/24 Python
Python进阶之尾递归的用法实例
2018/01/31 Python
Python基于Logistic回归建模计算某银行在降低贷款拖欠率的数据示例
2019/01/23 Python
Python OpenCV 使用滑动条来调整函数参数的方法
2019/07/08 Python
Python ATM功能实现代码实例
2020/03/19 Python
Python实现Word表格转成Excel表格的示例代码
2020/04/16 Python
利用PyTorch实现VGG16教程
2020/06/24 Python
详解查看Python解释器路径的两种方式
2020/10/15 Python
一款纯css3实现的tab选项卡的实列教程
2014/12/11 HTML / CSS
LORAC官网:美国彩妆品牌
2019/08/27 全球购物
世界上最大的字体市场:MyFonts
2020/01/10 全球购物
美容院营销方案
2014/03/05 职场文书
孝老爱亲事迹材料
2014/12/24 职场文书
青岛导游词
2015/02/12 职场文书
2015年女生节活动总结
2015/02/27 职场文书
vue中this.$http.post()跨域和请求参数丢失的解决
2022/04/08 Vue.js