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缩进区别分析
Feb 15 Python
python算法表示概念扫盲教程
Apr 13 Python
Django中利用filter与simple_tag为前端自定义函数的实现方法
Jun 15 Python
Python类装饰器实现方法详解
Dec 21 Python
python for 循环获取index索引的方法
Feb 01 Python
python格式化输出保留2位小数的实现方法
Jul 02 Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
Dec 09 Python
在django admin详情表单显示中添加自定义控件的实现
Mar 11 Python
Django values()和value_list()的使用
Mar 31 Python
Python OrderedDict字典排序方法详解
May 21 Python
python中count函数知识点浅析
Dec 17 Python
关于python pygame游戏进行声音添加的技巧
Oct 24 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
修改ThinkPHP缓存为Memcache的方法
2014/06/25 PHP
支持png透明图片的php生成缩略图类分享
2015/02/08 PHP
php微信开发之图片回复功能
2018/06/14 PHP
PHP切割汉字的常用方法实例总结
2019/04/27 PHP
无语,javascript居然支持中文(unicode)编程!
2007/04/12 Javascript
JavaScript 编程引入命名空间的方法与代码
2007/08/13 Javascript
超级酷和最实用的jQuery实例收集(20个)
2010/04/21 Javascript
改写一个简单的菜单 弹性大小
2010/12/02 Javascript
html组件不可输入(只读)同时任何组件都有效
2013/04/01 Javascript
javascript使用window.open提示“已经计划系统关机”的原因
2014/08/15 Javascript
node.js中的fs.mkdir方法使用说明
2014/12/17 Javascript
微信小程序 教程之数据绑定
2016/10/18 Javascript
Node.js编写CLI的实例详解
2017/05/17 Javascript
React.js绑定this的5种方法(小结)
2018/06/05 Javascript
node.js express框架实现文件上传与下载功能实例详解
2019/10/15 Javascript
JS实现容器模块左右拖动效果
2020/01/14 Javascript
VUE子组件向父组件传值详解(含传多值及添加额外参数场景)
2020/09/01 Javascript
python单线程实现多个定时器示例
2014/03/30 Python
Python实现优先级队列结构的方法详解
2016/06/02 Python
运行django项目指定IP和端口的方法
2018/05/14 Python
python opencv实现切变换 不裁减图片
2018/07/26 Python
Python 元组操作总结
2019/09/18 Python
python实现输出一个序列的所有子序列示例
2019/11/18 Python
python-web根据元素属性进行定位的方法
2019/12/13 Python
Python多线程thread及模块使用实例
2020/04/28 Python
深入理解Python 多线程
2020/06/16 Python
Python实现Kerberos用户的增删改查操作
2020/12/14 Python
京东国际站:JOYBUY
2017/11/23 全球购物
英国的潮牌鞋履服饰商店:size?
2019/03/26 全球购物
struct与class的区别
2014/02/03 面试题
公司活动邀请函
2014/01/24 职场文书
欢度春节标语
2014/07/01 职场文书
个园导游词
2015/02/04 职场文书
企业投资意向书
2015/05/09 职场文书
交通安全学习心得体会
2016/01/18 职场文书
2016年基层党支部书记公开承诺书
2016/03/25 职场文书