用master公式来求递归的时间复杂度

本文介绍了Master定理的基本概念及其在算法复杂度分析中的应用。通过具体例子如归并排序和快速排序,详细解释了如何使用Master定理来确定递归算法的时间复杂度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

来自于左神的讲解:  

master公式: T(N)=a*T(N/b)+)(N^d)

a为发生的次数,T(time)

N是原始样本量

n/b  是子过程的样本量
O(n^d)  除了调子过程外,剩下的开销

log(b,a)>d   -->  复杂度为 O(N^log(b,a));
log(b,a)=d   -->  复杂度为 O(N^d * logN);
log(b,a)<d   -->  复杂度为 O(N^d);

举例

归并排序  

a发生的次数为2,分别是左边和右边, n/b为n/2, 所以b=2 因为每次的样本量是总样本的一半,除了掉子过程外,在并的过程中,时间复杂度为o(n) 所以d=1;

a=2,b=2,d=1    

所以log(b,a)==d;    时间复杂度为 O(n^1*logN) ---->  O(nlogN);

快速排序和归并排序是一样的计算方式 也是O(nlogN);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值