假设我们有一个 for 循环,它从 0 开始一直到 100(或某个常数)除以变量 n,在这种情况下,Big-O 表示法是什么?
与其他情况不同,如果我们增加 n,程序的运行时间会更快。同样相反的情况也是有问题的,如果我们减少我们的n,我们的程序会越来越大,我无法将其与Big-O notation的本质联系起来
for( int i = 0; i < 100 / n ; i ++ );
正如我所提到的,我显然得到了与预期相反的结果。 (随着 n 的增加,程序运行得更快,而随着 n 的减小,程序运行得更慢)
最佳答案
由于循环运行到固定值 (100),因此运行时间将保持不变 O(1)
鉴于n >= 1
.
如果 n 是一个正分数,它可能会使循环变长,所以在那种情况下我会说运行时间是 O(1/n)
给出0 < n <= 1
.
关于algorithm - 如果 n 的幂小于零,如何理解程序的 big-o,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57104189/