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返回真假值(True or False)小技巧
Apr 10 Python
基于Python实现通过微信搜索功能查看谁把你删除了
Jan 27 Python
VSCode下配置python调试运行环境的方法
Apr 06 Python
详解使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件
Aug 23 Python
Django自定义用户表+自定义admin后台中的字段实例
Nov 18 Python
使用Python实现分别输出每个数组
Dec 06 Python
Pytorch 中retain_graph的用法详解
Jan 07 Python
tensorflow 初始化未初始化的变量实例
Feb 06 Python
Python接口测试数据库封装实现原理
May 09 Python
Django model.py表单设置默认值允许为空的操作
May 19 Python
关于Theano和Tensorflow多GPU使用问题
Jun 19 Python
手把手教你从PyCharm安装到激活(最新激活码),亲测有效可激活至2089年
Nov 25 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
smarty模板引擎使用内建函数foreach循环取出所有数组值的方法
2015/01/22 PHP
Laravel Eloquent ORM 实现查询表中指定的字段
2019/10/17 PHP
php7 list()、session及其他模块的修改实例分析
2020/05/25 PHP
Extjs中DisplayField的日期或者数字格式化扩展
2010/09/03 Javascript
jQuery的.live()和.die() 使用介绍
2011/09/10 Javascript
JQuery给元素添加/删除节点比如select
2013/04/02 Javascript
JS实现切换标签页效果实例代码
2013/11/01 Javascript
JS清空多文本框、文本域示例代码
2014/02/24 Javascript
jquery删除指定子元素代码实例
2015/01/13 Javascript
JavaScript获取文本框内选中文本的方法
2015/02/20 Javascript
一不小心就做错的JS闭包面试题
2015/11/25 Javascript
微信小程序实现登录页云层漂浮的动画效果
2017/05/05 Javascript
nodejs密码加密中生成随机数的实例代码
2017/07/17 NodeJs
Vue的事件响应式进度条组件实例详解
2018/02/04 Javascript
详解vuex结合localstorage动态监听storage的变化
2018/05/03 Javascript
浅谈Webpack 是如何加载模块的
2018/05/24 Javascript
原生javascript如何实现共享onload事件
2020/07/03 Javascript
vue flex 布局实现div均分自动换行的示例代码
2020/08/05 Javascript
[18:32]DOTA2 HEROS教学视频教你分分钟做大人-谜团
2014/06/12 DOTA
Python实现二分查找与bisect模块详解
2017/01/13 Python
对Python中小整数对象池和大整数对象池的使用详解
2019/07/09 Python
使用Python实现 学生学籍管理系统
2019/11/26 Python
最新2019Pycharm安装教程 亲测
2020/02/28 Python
Python任务调度利器之APScheduler详解
2020/04/02 Python
CSS3关于z-index不生效问题的解决
2020/02/19 HTML / CSS
HTML5的表单(绝对特别强大的功能)使用示例
2013/06/20 HTML / CSS
IFCHIC台湾:欧美国际设计师品牌
2019/05/18 全球购物
香港家用健身器材、运动器材及健康美容仪器专门店:FitBoxx
2019/12/05 全球购物
外企求职信范文分享
2013/12/31 职场文书
投资意向书范本
2014/04/01 职场文书
节能环保口号
2014/06/12 职场文书
森林防火标语
2014/06/23 职场文书
2014年教学管理工作总结
2014/12/02 职场文书
教师远程研修感悟
2015/11/18 职场文书
车位出租协议书范本
2016/03/19 职场文书
pandas 实现将NaN转换为None
2021/05/14 Python