归并排序

归并排序(MERGE-SORT)采用了分治法的思想。分而治之,无限划分,直至最小单元。

时间复杂度空间复杂度稳定性
平均O(nlog2n) 最好O(nlog2n) 最坏O(nlog2n)O(1)稳定

Python:

def MergeSort(lists):
	if len(lists) <= 1: 
		return lists
	num=int(len(lists)/2)
	left=MergeSort(lists[:num])
	right=MergeSort(lists[num:])
	return Merge(left,right)
def Merge(left,right):
	result=[]
	l,r=0,0
	while l<len(left) and r<len(right):
		if left[l]<right[r]:
			result.append(left[l])
			l+=1
		else:
			result.append(right[r])
			r+=1
	result+=left[l:]
	result+=right[r:]
	return result

print(MergeSort(sorted(range(9),reverse=True)))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值