Python归并排序(递归实现)
2024-09-27 18:20:19
为什么归并排序如此有用?
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])
最新文章
- public protect private. 草稿。
- C# Winform程序获取外网IP地址
- Nodejs学习笔记(八)--- Node.js + Express 实现上传文件功能(felixge/node-formidable)
- 利用SQL语句查询数据库中所有表
- dubbo 解决Multicast java.net.SocketException: No such device
- NET免费服务器
- javascript 常用array类型方法
- MVC 5 Web编程2 -- URL映射
- pdf 电子书分享
- 2017年最好的6个WEB前端开发手册下载
- node.js零基础详细教程(7):node.js操作mongodb,及操作方法的封装
- Python中什么是变量Python中定义字符串
- Android平移动画
- [python] bluepy 一款python封装的BLE利器
- Centos ATI 显卡安装,“LCD 信号超出范围” 解决方法
- Windows下pipenv将虚环境文件的位置设置在项目根目录下
- 廖雪峰Java2面向对象编程-3继承和多态-2多态
- gruop by报错this is incompatible with sql_mode=only_full_group_by
- iOS--支付宝环境集成
- yii2引入js和css
热门文章
- luogu P1325 雷达安装
- [CF911G]Mass Change Queries
- 5.4 集合的排序(Java学习笔记)(Collections.sort(),及Arrays.sort()底层分析)
- 读取SequenceFile中自定义Writable类型值
- 每天一个linux命令12之top
- Linux下使用xargs得到字符串作为参数进行输出、awk得到字符串作为参数进行输出
- sting , CSting的区别
- android_我的第一个Android程序
- Hadoop之Hbase详解
- 使用JMeter3.0实战之分布式并发测试以及web API接口测试