时间复杂度练习(伪代码)

时间:2017-04-08 16:21:47

标签: time-complexity big-o

刚开始数据结构。坚持这个:

enter image description here

我在使用内部while和for循环时遇到问题,因为如果N数是奇数或偶数,它会发生变化。

我最好的情况是 - 内部for循环运行logn(base 2)次, 和while循环 - 登录时间(基数2)

会喜欢一些帮助。

1 个答案:

答案 0 :(得分:1)

专注于do_something()被调用的次数。

外部for循环显然运行n次,其中的while循环独立于变量i。因此,do_something()被称为n循环中调用它的总次数的while

while循环的第一次传递中,do_something()被调用一次。第二次,它被调用两次,第三次被调用,4次,等等。

因此调用它的总次数

1 + 2 + 4 + 8 + ... + 2^(k-1)

其中k最大为2^(k-1) <= n

上述总和有一个标准公式。然后使用它,然后根据k求解n,并将结果乘以外部循环中的n,然后就完成了。