问问题
437 次
2 回答
2
于 2014-07-31T03:05:42.690 回答
0
假设 N = 4。
- 如果你调用 O(N!),循环将迭代 N! 每个循环的时间。第一个循环是 1,第二个循环是 1、2,第三个循环是 1、2、3,第四个循环是 1、2、3、4。
- 所以你有了:
- 1
- 1, 2
- 1、2、3
- 1、2、3、4
- 如果你调用 O(N^N),循环将为每个循环迭代 N 次。第一个循环是 1, 2, 3, 4 第二个循环是 1, 2, 3, 4 第三个循环是 1, 2, 3, 4 第四个循环是 1, 2, 3, 4
- 所以你有了:
- 1、2、3、4
- 1、2、3、4
- 1、2、3、4
- 1、2、3、4
- 所以你可以看到 O(N!) 将比 O(N^N) 更早终止,因为它不必为每次迭代循环到列表的末尾。因此,时间复杂度 O(N!) < O(N^N) 或者更确切地说 O(N!) 优于 O(N^N)。
于 2013-08-18T06:16:53.713 回答