为什么归并排序如此有用?
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])

  

最新文章

  1. public protect private. 草稿。
  2. C# Winform程序获取外网IP地址
  3. Nodejs学习笔记(八)--- Node.js + Express 实现上传文件功能(felixge/node-formidable)
  4. 利用SQL语句查询数据库中所有表
  5. dubbo 解决Multicast java.net.SocketException: No such device
  6. NET免费服务器
  7. javascript 常用array类型方法
  8. MVC 5 Web编程2 -- URL映射
  9. pdf 电子书分享
  10. 2017年最好的6个WEB前端开发手册下载
  11. node.js零基础详细教程(7):node.js操作mongodb,及操作方法的封装
  12. Python中什么是变量Python中定义字符串
  13. Android平移动画
  14. [python] bluepy 一款python封装的BLE利器
  15. Centos ATI 显卡安装,“LCD 信号超出范围” 解决方法
  16. Windows下pipenv将虚环境文件的位置设置在项目根目录下
  17. 廖雪峰Java2面向对象编程-3继承和多态-2多态
  18. gruop by报错this is incompatible with sql_mode=only_full_group_by
  19. iOS--支付宝环境集成
  20. yii2引入js和css

热门文章

  1. luogu P1325 雷达安装
  2. [CF911G]Mass Change Queries
  3. 5.4 集合的排序(Java学习笔记)(Collections.sort(),及Arrays.sort()底层分析)
  4. 读取SequenceFile中自定义Writable类型值
  5. 每天一个linux命令12之top
  6. Linux下使用xargs得到字符串作为参数进行输出、awk得到字符串作为参数进行输出
  7. sting , CSting的区别
  8. android_我的第一个Android程序
  9. Hadoop之Hbase详解
  10. 使用JMeter3.0实战之分布式并发测试以及web API接口测试