数据结构中的时间复杂度怎么算啊?看不懂啊,有没有具体的公式

如题所述

看循环的次数,比如for(k=1;k<=n;k*=2)
{for(j=1;j<=n;j++)....}
这种嵌套循环;首先第一个 k=1时候如果小于每次都是乘以2然后与n进行比较,那反过来只要进行log(2)n次,因为求的就是2的多少次方等于或者大于n,第二个的话就是1一直到n然后就是n。然后这个又是嵌套循环所以相乘就好了,这个时间复杂度度就是o(nlog(2)n)。这种主要是理解每一层循环的次数,然后嵌套就相乘,不是嵌套就取最大的那个循环。
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-07-14
只能看代码,主要是for循环,一个for是n,两个for是n平方,
第2个回答  2015-07-14
时间复杂度只是一个概念,没有计算公式
第3个回答  2015-07-14
求时间复杂度,其实是在统计基本操作步骤的执行次数。
“基本操作步骤”指的是加减乘除这种。比如有一个for循环,执行N次,每次做一个加法一个乘法,那么总的操作步骤数就是2N,用大O记号就是O(N).
原理就是这么简单,计数而已。
实际做题的时候,看清楚for循环的嵌套层数,就差不离。本回答被网友采纳
相似回答