Python归并排序(递归实现)
2014-05-08 15:07
375 查看
为什么归并排序如此有用?
1. 快捷和稳定
归并排序成为⼀一个非常棒的排序算法主要是因为它的快捷和稳
定。它的复杂度即使在最差情况下都是O(n log n)。而快速排序
在最差情况下的复杂度是O(n^2),当n=20的时候,它比归并要
慢4.6倍。
2.容易实现
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实现
- 汉诺塔问题的python递归实现
- 使用 Python 实现文件递归遍历的 3 种方式
- python中使用递归实现koch曲线绘制
- 归并排序(递归实现+非递归实现+自然合并排序)
- 算法基础:排序(二)——归并排序——Python实现
- python算法实现系列-归并排序
- Python递归实现 easyui
- Python递归遍历列表及输出的实现方法
- 归并排序的非递归实现
- Python实现递归
- 归并排序的递归与非递归实现理解(Java)
- 排序算法C++&&Python实现---归并排序
- Python实现经典内部排序算法(归并排序)
- 经典递归解决汉诺塔问题 python实现
- 用不动点组合子解递归(python实现)
- Python利用递归实现文件的复制