下面的示例,你在家里使用纸和笔就能完成。假设你要画一个网格,它包含16个格子。

算法1

一种方法是以每次画一个的方式画16个格子。记住,大O表示法计算的是操作数。在这个示例中,画一个格子是一次操作, 需要画16个格子。如果每次画一个格子,需要执行多少次操作呢?

算法2

请尝试这种算法——将纸折起来。你每折一次,绘制出的格子数都翻倍,因此4步就能“绘制”出16个格子。这种算法的运行时间是多少呢?请搞清楚这两种算法的运行时间之后,再接着往下读。答案如下:算法1的运行时间为O(n),算法2的运行时间为O(log n)。

results matching ""

    No results matching ""