算法的时间复杂度O到底怎么算
答案:2 悬赏:10
解决时间 2021-03-15 00:58
- 提问者网友:饮鸿
- 2021-03-14 09:15
算法的时间复杂度O到底怎么算
最佳答案
- 二级知识专家网友:請叫我丶偏執狂
- 2021-03-14 09:58
是说明一个程序根据其数据n的规模大小所使用的大致时间和空间说白了就是表示如果随着n的增长时间或空间会以什么样的方式进行增长例for(inti=0;i
全部回答
- 1楼网友:心与口不同
- 2021-03-14 11:06
求解算法的时间复杂度的具体步骤是: ⑴找出算法中的基本语句; 算法中执行次数最多的那条语句就是基本语句,通常是最内层循环的循环体。 ⑵计算基本语句的执行次数的数量级; 只需计算基本语句执行次数的数量级,这就意味着只要保证基本语句执行次数的函数中的最高次幂正确即可,可以忽略所有低次幂和最高次幂的系数。这样能够简化算法分析,并且使注意力集中在最重要的一点上:增长率。 ⑶用大ο记号表示算法的时间性能。 将基本语句执行次数的数量级放入大ο记号中。 如果算法中包含嵌套的循环,则基本语句通常是最内层的循环体,如果算法中包含并列的循环,则将并列循环的时间复杂度相加。例如: 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问题。 这只能基本的计算时间复杂度,具体的运行还会与硬件有关。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |