0
4

2 回答 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 回答