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

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

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

# coding:utf-8
defmergesort(seq):
  iflen(seq)<=1:
    returnseq
  mid=int(len(seq)/2)
  left=mergesort(seq[:mid])
  right=mergesort(seq[mid:])
  returnmerge(left,right)
defmerge(left,right):
  result=[]
  i,j=0,0
  whilei
    ifleft[i]<=right[j]:
      result.append(left[i])
      i
=1
    else:
      result.append(right[j])
      j
=1
  result =left[i:]
  result =right[j:]
  returnresult
if__name__=='__main__':
  print("脚本之家测试结果:")
  seq=[4,5,7,9,7,5,1,0,7,-2,3,-99,6]
  print(mergesort(seq))

运行结果:

最新文章

  1. 酷酷的CSS3三角形运用
  2. C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 角色权限的配置页面改进优化
  3. 两道关于JS的小考题(闭包与中间件)
  4. Oracle Hang Manager
  5. 如何配置Flash Media Live Encoder (FMLE)从而使用Azure直播服务
  6. OpenJudge/Poj 1316 Self Numbers
  7. WinForm小小应用
  8. Linux 文件内容转码
  9. HDU 1228 A + B 浙江大学研究生冠军
  10. C++中的基本数据类型
  11. WCF和ASP.NET Web API在应用上的选择
  12. MS SQL计算最大公约数和最小公倍数函数
  13. Linux内核最新的连续内存分配器(CMA)——避免预留大块内存【转】
  14. C# Winform控件对透明图片重叠时导致图片不透明的解决方法(转)
  15. vue路由的配置
  16. 微信小程序:wx.navigateBack页面返回传参
  17. lavarel模板引擎blade学习
  18. android 开发第三库
  19. MVC各层应该要实现的代码
  20. 使用Google的CDN JQuery库

热门文章

  1. 数据库——Oracle(7)
  2. maven的配置和eclipse maven插件安装
  3. 如何保存ActionMailbox inbound HTML email和关于ActionText与ActiveStorage的附加
  4. 2019.09.24 Device doesn&#39;t support wireless sync
  5. DevExpress Blazor组件全新来袭!增强Data Grid、TreeView API
  6. BZOJ 4003 / Luogu P3261 [JLOI2015]城池攻占 (左偏树)
  7. 【原】涉及数据库的单元测试-JTeser
  8. 数位dp入门 HDU 2089 HDU 3555
  9. TensorFlow使用记录 (十): Pretraining
  10. vue整合adminLTE