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标准库中的wave模块绘制乐谱的简单教程
Mar 30 Python
python利用有道翻译实现&quot;语言翻译器&quot;的功能实例
Nov 14 Python
Python获取本机所有网卡ip,掩码和广播地址实例代码
Jan 22 Python
tensorflow实现softma识别MNIST
Mar 12 Python
Python数据集切分实例
Dec 08 Python
Python实现蒙特卡洛算法小实验过程详解
Jul 12 Python
在TensorFlow中屏蔽warning的方式
Feb 04 Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
Mar 05 Python
python print 格式化输出,动态指定长度的实现
Apr 12 Python
tensorflow指定CPU与GPU运算的方法实现
Apr 21 Python
基于Python实现视频的人脸融合功能
Jun 12 Python
Pytorch框架实现mnist手写库识别(与tensorflow对比)
Jul 20 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 错误处理经验分享
2011/10/11 PHP
Yii配置文件用法详解
2014/12/04 PHP
基于PHP生成简单的验证码
2016/06/01 PHP
详谈PHP中的密码安全性Password Hashing
2017/02/04 PHP
鼠标图片振动代码
2006/07/06 Javascript
JavaScript中的Window窗口对象
2008/01/16 Javascript
javascript跨域刷新实现代码
2011/01/01 Javascript
jquery 笔记 事件
2011/11/02 Javascript
基于Jquery和CSS3制作数字时钟附源码下载(CSS3篇)
2015/11/24 Javascript
轻松实现Bootstrap图片轮播
2020/04/20 Javascript
js addDqmForPP给标签内属性值加上双引号的函数
2016/12/24 Javascript
Bootstrap 模态框实例插件案例分析
2016/12/28 Javascript
Bootstrap实现渐变顶部固定自适应导航栏
2020/08/27 Javascript
JavaScript实现的XML与JSON互转功能详解
2017/02/16 Javascript
Vue引入sass并配置全局变量的方法
2018/06/27 Javascript
微信小程序云开发修改云数据库中的数据方法
2019/05/18 Javascript
js脚本中执行java后台代码方法解析
2019/10/11 Javascript
Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
2017/08/07 Python
python机器学习实战之树回归详解
2017/12/20 Python
python 批量修改/替换数据的实例
2018/07/25 Python
Python设计模式之解释器模式原理与用法实例分析
2019/01/10 Python
解决Python3 被PHP程序调用执行返回乱码的问题
2019/02/16 Python
Django对数据库进行添加与更新的例子
2019/07/12 Python
Python 根据日志级别打印不同颜色的日志的方法示例
2019/08/08 Python
python多线程实现TCP服务端
2019/09/03 Python
python批量将excel内容进行翻译写入功能
2019/10/10 Python
Python warning警告出现的原因及忽略方法
2020/01/31 Python
通过Canvas及File API缩放并上传图片完整示例
2013/08/08 HTML / CSS
UNIONBAY官网:美国青少年服装品牌
2019/03/26 全球购物
Jones Bootmaker官网:优质靴子和鞋子在线
2020/11/30 全球购物
C#如何允许一个类被继承但是避免这个类的方法被重载?
2015/02/24 面试题
新闻专业应届生求职信
2013/10/31 职场文书
市政施工员自我鉴定
2014/01/15 职场文书
中层领导干部群众路线对照检查材料思想汇报
2014/10/02 职场文书
搭讪开场白台词大全
2015/05/28 职场文书
Mybatis 一级缓存和二级缓存原理区别
2022/09/23 Java/Android