永发信息网

递归函数的时间复杂度应该怎么算

答案:2  悬赏:60  手机版
解决时间 2021-01-04 04:10
递归函数的时间复杂度应该怎么算
最佳答案
求解算法的时间复杂度的具体步骤是:
  ⑴ 找出算法中的基本语句;
  算法中执行次数最多的那条语句就是基本语句,通常是最内层循环的循环体。
  ⑵ 计算基本语句的执行次数的数量级;
  只需计算基本语句执行次数的数量级,这就意味着只要保证基本语句执行次数的函数中的最高次幂正确即可,可以忽略所有低次幂和最高次幂的系数。这样能够简化算法分析,并且使注意力集中在最重要的一点上:增长率。
  ⑶ 用大Ο记号表示算法的时间性能。
  将基本语句执行次数的数量级放入大Ο记号中。
  如果算法中包含嵌套的循环,则基本语句通常是最内层的循环体,如果算法中包含并列的循环,则将并列循环的时间复杂度相加。例如:
  for (i=1; i<=n; i++)
  x++;
  for (i=1; i<=n; i++)
  for (j=1; j<=n; j++)
  x++;
  第一个for循环的时间复杂度为Ο(n),第二个for循环的时间复杂度为Ο(n2),则整个算法的时间复杂度为Ο(n+n2)=Ο(n2)。
  常见的算法时间复杂度由小到大依次为:
  Ο(1)<Ο(log2n)<Ο(n)<Ο(nlog2n)<Ο(n2)<Ο(n3)<…<Ο(2n)<Ο(n!)
Ο(1)表示基本语句的执行次数是一个常数,一般来说,只要算法中不存在循环语句,其时间复杂度就是Ο(1)。Ο(log2n)、Ο(n)、Ο(nlog2n)、Ο(n2)和Ο(n3)称为多项式时间,而Ο(2n)和Ο(n!)称为指数时间。计算机科学家普遍认为前者是有效算法,把这类问题称为P类问题,而把后者称为NP问题。
这只能基本的计算时间复杂度,具体的运行还会与硬件有关。
参考博客地址:
全部回答
调用一次相当于循环一次
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
形容那个人不听别人的劝告的四字词语
广州市城市管理监控指挥中心位置在什么地方啊
越秀区城管综合执法分局北京中队地址在什么地
珠海社保卡能在顺德用吗
.---I did very well in the Maths exam yest
阿里巴巴诚信通里的商家主营是什么意思
什么时候开学高中
微信号注销后,微信好友是不是就看不到自己了
单选题人的骨骼肌细胞的细胞质内含有的多糖和
脉冲信号也叫数字信号吗?为什么? 20分
单选题Howmuch________doesittaketomakea
个人微信怎样自动回复
女主叫秦笙雨的小说
芯片有什么作用?
我要与美团合作,能直接提供美团合作电话吗?
推荐资讯
下列关于运动和力的说法中正确的是A.降落伞在
请问高手用500v10000uf的电容组装20只的捕猎
钓鱼能锻炼人的什么能力多?
什么网络游戏武器没有耐久度
2B青年是啥意思
单选题Thisclimatedoesn't________her.A.
请问,站不稳是缺钙吗,我的8个月大了,腿还不
请各位哥哥姐姐们推荐一本高中英语词汇书,最
乌鲁木齐七中实验班与十三中实验班哪个好,要
单选题设“x为不小于0的实数”用区间可表示为
若y轴正半轴上的点P到x轴的距离为4,则点P的
请根据右下图1和图2有关信息回答下列问题:(
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?