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多线程编程中的join函数使用心得
Sep 02 Python
Python的Bottle框架中实现最基本的get和post的方法的教程
Apr 30 Python
通过5个知识点轻松搞定Python的作用域
Sep 09 Python
Python编程之gui程序实现简单文件浏览器代码
Dec 08 Python
100行python代码实现跳一跳辅助程序
Jan 15 Python
详解如何将python3.6软件的py文件打包成exe程序
Oct 09 Python
Python3+Appium实现多台移动设备操作的方法
Jul 05 Python
浅析PEP572: 海象运算符
Oct 15 Python
python制作朋友圈九宫格图片
Nov 03 Python
Python气泡提示与标签的实现
Apr 01 Python
新手学python应该下哪个版本
Jun 11 Python
python playwright之元素定位示例详解
Jul 23 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牛逼的面试题分享
2013/01/18 PHP
php图片缩放实现方法
2014/02/20 PHP
JavaScript 参考教程
2006/12/29 Javascript
再谈ie和firefox下的document.all属性
2009/10/21 Javascript
为超链接加上disabled后的故事
2010/12/10 Javascript
jQuery Ajax使用 全解析
2010/12/15 Javascript
基于jQuery实现的水平和垂直居中的div窗口
2011/08/08 Javascript
jQuery的ajax下载blob文件
2016/07/21 Javascript
js控制div层的叠加简单方法
2016/10/15 Javascript
Bootstrap入门教程一Hello Bootstrap初识
2017/03/02 Javascript
vue2.0实战之使用vue-cli搭建项目(2)
2017/03/27 Javascript
带你了解session和cookie作用原理区别和用法
2017/08/14 Javascript
基于rollup的组件库打包体积优化小结
2018/06/18 Javascript
js 将线性数据转为树形的示例代码
2019/05/28 Javascript
微信小程序 动态修改页面数据及参数传递过程详解
2019/09/27 Javascript
three.js利用卷积法如何实现物体描边效果
2019/11/27 Javascript
jQuery实现小火箭返回顶部特效
2020/02/03 jQuery
JavaScript布尔运算符原理使用解析
2020/05/06 Javascript
matplotlib 纵坐标轴显示数据值的实例
2018/05/25 Python
Python实现朴素贝叶斯分类器的方法详解
2018/07/04 Python
python  ceiling divide 除法向上取整(或小数向上取整)的实例
2019/12/27 Python
python 实现PIL模块在图片画线写字
2020/05/16 Python
python怎么调用自己的函数
2020/07/01 Python
python如何支持并发方法详解
2020/07/25 Python
施华洛世奇英国官网:SWAROVSKI英国
2017/03/13 全球购物
What's the difference between an interface and abstract class? (接口与抽象类有什么区别)
2012/10/29 面试题
客服端调用EJB对象的几个基本步骤
2012/01/15 面试题
班级道德讲堂实施方案
2014/02/24 职场文书
单位绩效考核方案
2014/05/11 职场文书
教代会开幕词
2015/01/28 职场文书
介绍信样本
2015/01/31 职场文书
ktv服务员岗位职责
2015/02/09 职场文书
大一学生个人总结
2015/02/15 职场文书
2016年机关单位节能宣传周活动总结
2016/04/05 职场文书
Mysql 如何实现多张无关联表查询数据并分页
2021/06/05 MySQL
springboot项目以jar包运行的操作方法
2021/06/30 Java/Android