algorithm - 如果 n 的幂小于零,如何理解程序的 big-o

标签 algorithm big-o

假设我们有一个 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/

相关文章:

c++ - 跟踪视频中的编号标记

algorithm - 遍历相关集合的循环的时间复杂度

c++ - Lucas-Kanade 算法的计算复杂度是多少?

infinity - O 表示法,O(∞) = O(1)?

algorithm - 来自非线性概率的线性概率

algorithm - 最大化获得的分数

algorithm - SICP练习1.28 : false negatives in the Miller-Rabin test

algorithm - 方案中的算法或数据结构书籍

algorithm - 为什么 QuickSort 不擅长对几乎已排序的数据进行排序

algorithm - 是否存在复杂度为 O(log n) 而 power(2, f) 不在 O(n) 中的函数