Algorithm Quizzes
Quiz 1Permalink
Sort the following terms from slowest growing to fastest growing.
这题其实非常 tricky。
首先要注意两点:
所有我们上来可以排列成 3 组:
我们事后诸葛亮一下:这个问题可以转化为证明下面两个不等式:
1. 不等式一Permalink
令
这个很明显
所以:
2. 不等式二Permalink
令
因为
所以:
3. 综上Permalink
Quiz 2Permalink
求以下两段代码各自的 computational cost:
(1) while (n > 2)
n = sqrt(n);
(2) while (n > 2)
n = log(n)
解:(1) 假设 while
运行
- ……
假设 while
结束,有:
,两边同时 次方,得: ,两边同时取对数,得: ,两边再次取对数,得: ,即:
解:(2) 这题需要一个引入概念,叫 iterated logarithm:
根据这个定义:
假设 while
运行
- ……
( 个 )
假设 while
结束,根据 iterated logarithm,有:
Quiz 3Permalink
如何判断一个正整数是不是 2 的 n 次方?
解:设
同时 x & (x - 1) == 0
Comments