python递归排序_Python归并排序(递归实现)

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

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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值