为什么归并排序如此有用?

1. 快捷和稳定

归并排序成为⼀一个非常棒的排序算法主要是因为它的快捷和稳

定。它的复杂度即使在最差情况下都是O(n log n)。而快速排序

在最差情况下的复杂度是O(n^2),当n=20的时候,它比归并要

慢4.6倍。

2.容易实现

#coding:utf-8

def merge_sort(array):

length = len(array)

if length <= 1: return array

m = length / 2

left = array[:m]

right = array[m:]

left = merge_sort(left)

right = merge_sort(right)

return merge(left,right)

def merge(left,right):

result = []

while len(left)>0 and len(right)>0 :

if left[0] <= right[0]:

result.append(left.pop(0))

else:

result.append(right.pop(0))

result.extend(left)

result.extend(right)

return result

if __name__ == '__main__':

print merge_sort([33,11,2,3,7,2234234234234234,4,23,2,3,4,7])

print merge_sort([0,1,2,3,4,5,5,6,7,8,9])

print merge_sort([9,8,7,6,5,5,4,3,2,1,0])

python递归排序_Python归并排序(递归实现)相关推荐

  1. python递归合并排序_python 归并排序的递归法与迭代法(利用队列)实现,以及性能测试...

    递归排序核心 递归排序的核心是 分与合 分的最终结果 就是将原数组中每一个数字分作一个数组, 合就是 所有小数组不断排序,合并的过程. 合并的过程是先将两个含有一个数字的数组排序,合并(每次比较两个数 ...

  2. python数字排序_python数字排序

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 例如,你想要按照名字来对一列团队成员名单进行排序,或者想按照优先级来对一列项目进 ...

  3. python set 排序_python set 排序_如何在Python中使用sorted()和sort()

    点击"蓝字"关注我们 ?"Python基础知识" 大卫·丰达科夫斯基  著 18财税3班 李潇潇    译 日期:2019年5月6日 一. 使用sorted() ...

  4. python 列表排序_python列表排序有哪些

    python列表排序:1.冒泡排序,是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来:2.插入排序,通过构建有序序列,对于未排序数据,在已排序序列中 ...

  5. python结构排序_Python数据结构(七)排序算法 上

    Python数据结构(七)排序算法 上 上回: 本文的重点不是代码,而是带着大家分析每一个排序算法背后的思想以及使用到的数据结构.很多时候不是我们想不出算法该如何去写,而是题目并没有指定特定的数据结构 ...

  6. python 拓扑排序_Python 拓扑排序

    Python 拓扑排序 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G) ...

  7. 用python找孪生素数_python用递归筛选法求N以内的孪生质数(孪生素数)

    本人最近读完一本书<质数的孤独>,里面讲到孪生质数,就想查一下孪生质数的分布情况.其中主要用到了计算质数(素数)的方法,搜了一下,排名前几的都是用for循环来做的,感觉略微麻烦了一些,在比 ...

  8. python背包问题并行_python基于递归解决背包问题详解

    递归是个好东西,任何具有递归性质的问题通过函数递归调用会变得很简单.一个很复杂的问题,几行代码就能搞定. 最简单的递归问题:现有重量为weight的包,有若干重量分别为W1,W2.....Wn的物品, ...

  9. python递归实例_python实现递归实例代码

    # 递归:在某个函数内部自己调用了自己# 递归和循环一样,必须要有退出条件.如果没有退出条件,就会无限调用自身,相当于死循环. 工具/原料 python3.6 pycharm 方法/步骤 1 def ...

最新文章

  1. 【SAP-PM模块】服务采购业务流程
  2. python自学步骤-Python入门深度学习完整指南
  3. 【python】-- pymsql 外键
  4. lower_bound和upper_bound算法
  5. python爬取jsp网页_帮MM用python抓取index及一级目录下的所有符合要求的网页
  6. Aggregate functions cannot be used in the select right after the flatAggregate
  7. python线程暂停_在python中暂停一个线程和另一个线程
  8. 汇编中NEG和NOT的区别(汇编初学者简单笔记)
  9. CodeBlocks汉化包
  10. 15个数据可视化的绝妙案例
  11. 平均获客成本_获客成本5年翻了6倍,布局私域流量的背后隐藏了哪些惊人数据?...
  12. 【Ubuntu】 Ubuntu16.04系统美化
  13. win7 查看php版本信息,window_Windows系统版本怎么看?2种查看windows版本的方法介绍,前段时间微软正式开始向Win7和 - phpStudy...
  14. (高能预警!)为什么Gram矩阵可以代表图像风格?带你揭开图像风格迁移的神秘面纱!
  15. JPA中MySQLSyntaxErrorException问题解决方案
  16. [经典收藏]1200个Photoshop经典实例打造ps高手!
  17. Windbg在软件调试中的应用
  18. 8月5号 图论,拓扑排序入门
  19. 什么是证券投资基金?
  20. Leetcode PHP题解--D19 867. Transpose Matrix

热门文章

  1. Python全栈开发记录_第三篇(linux(ubuntu)的操作)
  2. salt 文件push使用方法
  3. 第一阶段站立会议02
  4. 使用Instruments中的CoreAnimation分析动画
  5. 电话号码正则表达式(支持手机号码,3-4位区号,7-8位直播号码,1-4位分机号)...
  6. [原创]利用DropDownlist来控制Textbox输入数字的精度
  7. Bootstrap Table的使用小结
  8. 第7期 Datawhale 组队学习计划
  9. JavaScript 编程精解 中文第三版 六、对象的秘密
  10. Theano 中文文档 0.9 - 4. 要求