我的计算机科学教授今天开始教我们关于大O符号的问题,我很难理解它。下面是他给我们的例子:确定Java代码的大O
什么是下面的大O:
一个。 4n2 + 2是:O(n^2)?
b。 n2 + 14n + 6是:O(n^2)?
c。 5n3 + 10n2 - n - 8是:O(n^3)?
d。 3n2 + 2n是:O(n^2)?
据我所知,它与程序要多长时间运行基于输入和多少将取决于输入变化增加拿去做。我查了一个方法来确定上述问题的大O,并把我以为是的。但是当谈到确定Java代码的大O时,我迷失了方向。有人能指出我对这些问题的正确方向吗?
3. int count = 0;
for (int i = 1; i <= n; i++) {
i = n;
count += 1;
}
// end for
4. int total = 0;
for (int i = 1; i <= n; i++) {
for (int j = 1; j < i; j++) {
for (int k = 1; three < j; j++) {
total += 1;
} //end for } // end for } // end for
5. int total = 0;
for (int one = 1; one <= n; one++) {
for (int two = 1; two < n; two++) {
for (int three = 1; three < 10; three++) {
total += 1;
} //end for } // end for } // end for
6. int total = 0;
for (int pass = 1; pass <= n; pass*=2) {
total += 1;
}
// end for
7. p = n;
while (n>1) {
n = n/2;
while (p>0) {
p = p - 1;
}
// end while } // end while
8. for (int i = 1; i <= n; i+=2) {
j=1;
while(j < n) {
j = j + 2;
x = x + 2;
} // end while } // end for
https://rob-bell.net/2009/06/a-beginners-guide-to-big-o-notation/ –