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 11 Python
Python多线程编程简单介绍
Apr 13 Python
Python生成随机验证码的两种方法
Dec 22 Python
python实现录音小程序
Oct 26 Python
pygame实现雷电游戏雏形开发
Nov 20 Python
Python人脸识别第三方库face_recognition接口说明文档
May 03 Python
Python 下载及安装详细步骤
Nov 04 Python
numpy:找到指定元素的索引示例
Nov 26 Python
解决python 找不到module的问题
Feb 12 Python
Python基于Socket实现简单聊天室
Feb 17 Python
细数nn.BCELoss与nn.CrossEntropyLoss的区别
Feb 29 Python
Python快速优雅的批量修改Word文档样式
May 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函数
2011/05/31 PHP
PHP中Fatal error session_start()错误解决步骤
2014/08/05 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
PHP面向对象程序设计__tostring()和__invoke()用法分析
2019/06/12 PHP
PHP递归统计系统中代码行数
2019/09/19 PHP
Extjs 3.3切换tab隐藏相应工具栏出现空白解决
2013/04/02 Javascript
SeaJS入门教程系列之SeaJS介绍(一)
2014/03/03 Javascript
将字符串中由空格隔开的每个单词首字母大写
2014/04/06 Javascript
js+CSS实现模拟华丽的select控件下拉菜单效果
2015/09/01 Javascript
javascript实现九宫格相加数值相等
2020/05/28 Javascript
详解VUE2.X过滤器的使用方法
2018/01/11 Javascript
使用webpack打包后的vue项目如何正确运行(express)
2018/10/26 Javascript
React如何解决fetch跨域请求时session失效问题
2018/11/02 Javascript
JS/HTML5游戏常用算法之路径搜索算法 随机迷宫算法详解【普里姆算法】
2018/12/13 Javascript
如何测量vue应用运行时的性能
2019/06/21 Javascript
Element-Ui组件 NavMenu 导航菜单的具体使用
2019/10/24 Javascript
js面试题之异步问题的深入理解
2020/09/20 Javascript
9个JavaScript日常开发小技巧
2020/10/06 Javascript
[00:48]DOTA2国际邀请赛公开赛报名开始 扫码开启逐梦之旅
2018/06/06 DOTA
[00:13]天涯墨客二技能展示
2018/08/25 DOTA
Flask入门教程实例:搭建一个静态博客
2015/03/27 Python
深入理解Python对Json的解析
2017/02/14 Python
Python模拟用户登录验证
2017/09/11 Python
Python用61行代码实现图片像素化的示例代码
2018/12/10 Python
Python子类继承父类构造函数详解
2019/02/19 Python
详解Python Qt的窗体开发的基本操作
2019/07/14 Python
pytorch 使用单个GPU与多个GPU进行训练与测试的方法
2019/08/19 Python
Python变量及数据类型用法原理汇总
2020/08/06 Python
日本最佳原创设计品牌:Felissimo(芬理希梦)
2019/03/19 全球购物
百度JavaScript笔试题
2015/01/15 面试题
教师自我鉴定范文
2013/11/10 职场文书
新学期教师寄语
2014/04/02 职场文书
会员卡清退活动总结
2014/08/27 职场文书
校园会短篇的广播稿
2014/10/21 职场文书
十七岁的单车观后感
2015/06/12 职场文书
MongoDB支持的索引类型
2022/04/11 MongoDB