我知道O(N)基本上等于O(cN),其中c ='某个常数'。但如果N = c。这不是O(N)^ 2。这是因为c增加,还是有一些正式的限制。
答案 0 :(得分:15)
如果N = c
则c
不是常数。因此,情况永远不会如此。
答案 1 :(得分:9)
O(n)表示算法的运行时间随输入的大小线性增加。如果将输入的大小加倍,则运行时加倍。如果输入的大小增加三倍,则运行时将增加三倍。等等。所以图表是一条直线。
O(n ^ 2)表示算法的运行时间随输入的大小呈二次方增加。如果将输入的大小加倍,则运行时将翻两番。这是不好的。图形类型循环并且非常快地变得非常高。
使用O(2n),您增加了线的斜率,但它仍然是一条直线。由于它是线性的,它“减少”到O(n)。
希望有所帮助。