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中用fork()函数生成的子进程
May 04 Python
Python使用MONGODB入门实例
May 11 Python
Python从MP3文件获取id3的方法
Jun 15 Python
Python工程师面试题 与Python基础语法相关
Jan 14 Python
Python实现数据库并行读取和写入实例
Jun 09 Python
python通过getopt模块如何获取执行的命令参数详解
Dec 29 Python
python ddt实现数据驱动
Mar 14 Python
Python3导入CSV文件的实例(跟Python2有些许的不同)
Jun 22 Python
pycharm: 恢复(reset) 误删文件的方法
Oct 22 Python
python通过ffmgep从视频中抽帧的方法
Dec 05 Python
Python序列化与反序列化pickle用法实例
Nov 11 Python
python自动提取文本中的时间(包含中文日期)
Aug 31 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
建立动态的WML站点(三)
2006/10/09 PHP
模拟flock实现文件锁定
2007/02/14 PHP
Snoopy类使用小例子
2008/04/15 PHP
php5 non-thread-safe和thread-safe这两个版本的区别分析
2010/03/13 PHP
php中$_GET与$_POST过滤sql注入的方法
2014/11/03 PHP
PHP实现中文圆形印章特效
2015/06/19 PHP
用JAVASCRIPT如何给&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;赋值
2007/04/20 Javascript
Packer 3.0 JS压缩及混淆工具 下载
2007/05/03 Javascript
可以将word转成html的js代码
2010/04/11 Javascript
firefox下jquery iframe刷新页面提示会导致重复之前动作
2012/12/17 Javascript
js字符串日期yyyy-MM-dd转化为date示例代码
2014/03/06 Javascript
Javascript进制转换实例分析
2015/05/14 Javascript
使用Chrome浏览器调试AngularJS应用的方法
2015/06/18 Javascript
JS拖拽插件实现步骤
2015/08/03 Javascript
JS+CSS实现的经典tab选项卡效果代码
2015/09/16 Javascript
jQuery插件EasyUI设置datagrid的checkbox为禁用状态的方法
2016/08/05 Javascript
WEB前端实现裁剪上传图片功能
2016/10/17 Javascript
Jquery AJAX POST与GET之间的区别详细介绍
2016/10/17 Javascript
JavaScript中的子窗口与父窗口的互相调用问题
2017/02/08 Javascript
jQuery实现web页面樱花坠落的特效
2017/06/01 jQuery
vue中promise的使用及异步请求数据的方法
2018/11/08 Javascript
JS使用Prim算法和Kruskal算法实现最小生成树
2019/01/17 Javascript
微信小程序实现聊天室
2020/08/21 Javascript
python提示No module named images的解决方法
2014/09/29 Python
Python内置函数Type()函数一个有趣的用法
2015/02/18 Python
浅谈Python实现2种文件复制的方法
2018/01/19 Python
详解pandas.DataFrame.plot() 画图函数
2020/06/14 Python
pytorch掉坑记录:model.eval的作用说明
2020/06/23 Python
纯CSS实现的大小渐变、渐远效果
2014/04/15 HTML / CSS
节省高达65%的城市景点费用:Go City
2019/07/06 全球购物
爱心捐助活动总结
2015/05/09 职场文书
导游词之铁岭象牙山
2019/12/06 职场文书
python实现大文本文件分割成多个小文件
2021/04/20 Python
解决go在函数退出后子协程的退出问题
2021/04/30 Golang
vue中控制mock在开发环境使用,在生产环境禁用方式
2022/04/06 Vue.js
vue组件vue-esign实现电子签名
2022/04/21 Vue.js