Python排序搜索基本算法之归并排序实例分析


Posted in Python onDecember 08, 2017

本文实例讲述了Python排序搜索基本算法之归并排序。分享给大家供大家参考,具体如下:

归并排序最令人兴奋的特点是:不论输入是什么样的,它对N个元素的序列排序所用时间与NlogN成正比。代码如下:

# coding:utf-8
def mergesort(seq):
  if len(seq)<=1:
    return seq
  mid=int(len(seq)/2)
  left=mergesort(seq[:mid])
  right=mergesort(seq[mid:])
  return merge(left,right)
def merge(left,right):
  result=[]
  i,j=0,0
  while i<len(left) and j<len(right):
    if left[i]<=right[j]:
      result.append(left[i])
      i+=1
    else:
      result.append(right[j])
      j+=1
  result+=left[i:]
  result+=right[j:]
  return result
if __name__=='__main__':
  print("三水点靠木测试结果:")
  seq=[4,5,7,9,7,5,1,0,7,-2,3,-99,6]
  print(mergesort(seq))

运行结果:

Python排序搜索基本算法之归并排序实例分析

Python 相关文章推荐
python创建关联数组(字典)的方法
May 04 Python
python中while循环语句用法简单实例
May 07 Python
Python字典简介以及用法详解
Nov 15 Python
Python双精度浮点数运算并分行显示操作示例
Jul 21 Python
ubuntu安装sublime3并配置python3环境的方法
Mar 15 Python
浅谈Tensorflow由于版本问题出现的几种错误及解决方法
Jun 13 Python
DRF跨域后端解决之django-cors-headers的使用
Jan 27 Python
Django项目中添加ldap登陆认证功能的实现
Apr 04 Python
Python后台开发Django会话控制的实现
Apr 15 Python
基于python if 判断选择结构的实例详解
May 06 Python
详解python uiautomator2 watcher的使用方法
Sep 09 Python
python opencv pytesseract 验证码识别的实现
Aug 28 Python
Python实现基于二叉树存储结构的堆排序算法示例
Dec 08 #Python
Python排序搜索基本算法之堆排序实例详解
Dec 08 #Python
基于Django contrib Comments 评论模块(详解)
Dec 08 #Python
Python数据分析中Groupby用法之通过字典或Series进行分组的实例
Dec 08 #Python
python在ubuntu中的几种安装方法(小结)
Dec 08 #Python
Python编程之gui程序实现简单文件浏览器代码
Dec 08 #Python
Python中的pygal安装和绘制直方图代码分享
Dec 08 #Python
You might like
PHP通过加锁实现并发情况下抢码功能
2016/08/10 PHP
浅谈php中变量的数据类型判断函数
2017/03/04 PHP
PHP实现网页内容html标签补全和过滤的方法小结【2种方法】
2017/04/27 PHP
javascript DOM编程实例(智播客学习)
2009/11/23 Javascript
Js放到HTML文件中的哪个位置有什么区别
2013/08/21 Javascript
javaScript如何处理从java后台返回的list
2014/04/24 Javascript
Google 地图控件集详解及实例代码
2016/08/06 Javascript
angularJS Provider、factory、service详解及实例代码
2016/09/21 Javascript
小发现之浅谈location.search与location.hash的问题
2017/06/23 Javascript
基于input框覆盖掉数字英文的实例讲解
2017/07/21 Javascript
原生JS实现前端本地文件上传
2018/09/08 Javascript
vuex直接赋值的三种方法总结
2018/09/16 Javascript
浅谈Vue项目骨架屏注入实践
2019/08/05 Javascript
判断JavaScript中的两个变量是否相等的操作符
2019/12/21 Javascript
详解Vue中的Props与Data细微差别
2020/03/02 Javascript
JavaScript中继承原理与用法实例入门
2020/05/09 Javascript
解决Vue-Router升级导致的Uncaught (in promise)问题
2020/08/07 Javascript
[46:32]Fnatic vs OG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python实现删除Android工程中的冗余字符串
2015/01/19 Python
Python探索之SocketServer详解
2017/10/28 Python
Python用csv写入文件_消除空余行的方法
2018/07/06 Python
替换python字典中的key值方法
2018/07/06 Python
Tensorflow 合并通道及加载子模型的方法
2018/07/26 Python
详解pyenv下使用python matplotlib模块的问题解决
2018/11/29 Python
python实现自动解数独小程序
2019/01/21 Python
在tensorflow中实现屏蔽输出的log信息
2020/02/04 Python
TensorFlow实现保存训练模型为pd文件并恢复
2020/02/06 Python
html5+css3进度条倒计时动画特效代码【推荐】
2016/03/08 HTML / CSS
倩碧英国官网:Clinique英国
2018/08/10 全球购物
Ivory Isle Designs美国/加拿大:婚礼和活动文具公司
2018/08/21 全球购物
EJB与JAVA BEAN的区别
2016/08/29 面试题
2014领导干部四风问题查摆思想汇报
2014/09/13 职场文书
幼儿园园长新年寄语2015
2014/12/08 职场文书
如何写观后感
2015/06/19 职场文书
Python代码风格与编程习惯重要吗?
2021/06/03 Python
深入理解CSS 中 transform matrix矩阵变换问题
2021/08/30 HTML / CSS