你如何计算增长的瓦片符号顺序?

时间:2015-09-21 01:15:45

标签: algorithm performance runtime time-complexity

我主要理解big-O符号,就分析循环和诸如各种类型的算法的效率而言,但是我的书的练习说“给出Big-O中最坏情况的渐近运行时间,和最坏情况下的波浪符号增长顺序,作为给定代码片段的N“函数,如

int a = 1;
while(a<=N) {a*=2};

我的猜测是运行时将是O(log n),因为a正在以指数方式递增,因此比线性O(n)更快,但我不确定这与增长顺序或波形符号有何关系

1 个答案:

答案 0 :(得分:0)

在波形符号表示法中,你应该提供一个表达式f(N)(不会像在big-O中那样丢弃常量),以便

RT(N)/ f(N)----&gt; 1             如N - >无穷大

其中RT(N)是N值较大的算法的运行时间。

在此示例中,f(N)= logN / log2。