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 sys模块sys.path使用方法示例
Dec 04 Python
Python使用OpenCV进行标定
May 08 Python
python保存数据到本地文件的方法
Jun 23 Python
Python求两个圆的交点坐标或三个圆的交点坐标方法
Nov 07 Python
Python补齐字符串长度的实例
Nov 15 Python
python实现AES和RSA加解密的方法
Mar 28 Python
python日志logging模块使用方法分析
May 23 Python
Pandas之MultiIndex对象的示例详解
Jun 25 Python
python通过TimedRotatingFileHandler按时间切割日志
Jul 17 Python
OpenCV python sklearn随机超参数搜索的实现
Jan 17 Python
tensorflow:指定gpu 限制使用量百分比,设置最小使用量的实现
Feb 06 Python
Python调用百度OCR实现图片文字识别的示例代码
Jul 17 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 5.4 你必须要知道的
2013/08/07 PHP
PHP变量内存分配问题记录整理
2013/11/27 PHP
四个常见html网页乱码问题及解决办法
2015/09/08 PHP
PHP设计模式之迭代器模式
2016/06/17 PHP
PHP保留两位小数的几种方法
2019/07/24 PHP
心扬JS分页函数代码
2010/09/10 Javascript
javascript函数作用域学习示例(js作用域)
2014/01/13 Javascript
判断iframe里的页面是否加载完成
2014/06/06 Javascript
js获取UserControl内容为拼html时提供方便
2014/11/02 Javascript
浅谈Javascript 数组与字典
2015/01/29 Javascript
PHP结合jQuery实现红蓝投票功能特效
2015/07/22 Javascript
使用jquery.qrcode.min.js实现中文转化二维码
2016/03/11 Javascript
DWR中各种java方法的调用
2016/05/04 Javascript
设计模式中的facade外观模式在JavaScript开发中的运用
2016/05/18 Javascript
jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结
2016/07/07 Javascript
深入理解jQuery()方法的构建原理
2016/12/05 Javascript
详解react使用react-bootstrap当轮子造车
2017/08/15 Javascript
webpack css加载和图片加载的方法示例
2018/09/11 Javascript
js图片无缝滚动插件使用详解
2020/05/26 Javascript
vue基础知识--axios合并请求和slot
2020/06/04 Javascript
JS异步宏队列与微队列原理区别详解
2020/07/02 Javascript
解决vue axios跨域 Request Method: OPTIONS问题(预检请求)
2020/08/14 Javascript
Python装饰器decorator用法实例
2014/11/10 Python
Django + Uwsgi + Nginx 实现生产环境部署的方法
2018/06/20 Python
Python统计python文件中代码,注释及空白对应的行数示例【测试可用】
2018/07/25 Python
python3实现带多张图片、附件的邮件发送
2019/08/10 Python
Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法
2019/09/24 Python
Python实现企业微信机器人每天定时发消息实例
2020/02/25 Python
美国最受欢迎的度假目的地优惠套餐:BookVIP
2018/09/27 全球购物
罗兰·穆雷官网:Roland Mouret
2018/09/28 全球购物
国际贸易实务实训报告
2014/11/05 职场文书
2014年学生会个人工作总结
2014/11/07 职场文书
小学生家长意见
2015/06/03 职场文书
2016形势与政策学习心得体会
2016/01/12 职场文书
php中配置文件保存修改操作 如config.php文件的读取修改等操作
2021/05/12 PHP
OpenCV中resize函数插值算法的实现过程(五种)
2021/06/05 Python