![]() |
1
7
它是O(n ^ 2)。您可以看到内部循环执行的次数是:
因为每个外部循环迭代都会删除一个小部件。即(n^2+n)/2,即o(n^2)。 |
![]() |
2
5
因为你要通过两个循环,它是O(n^2)。 |
![]() |
3
4
因为断言:
O(n)的答案 二 )是正确的,但在一般情况下,如果列表的长度不一定相同,您可以将其称为O(m*n)。 |
![]() |
4
3
该算法的性能最差为O(n^2)。 |
![]() |
5
2
是O(n^2),但我认为人们缺少此问题的“删除”部分。
你可能认为你降低了big-o,但是所有的删除操作都是将系数乘以1/2。 这是因为n+(n-1)+…+2+1=n(n+1)/2。当n变为无穷大时,它变为n^2/2,即0(n^2) |
![]() |
6
2
冒着相反和学究的风险,你真的没有提供足够的信息来回答一般的问题。当然,性能并不比O(n^2)好,但是由于您没有给出关于您在内部循环中所做的事情的详细信息,所以通常情况下会更糟。但是,假设内部循环中的情况是O(1),那么总体性能是O(n^2)。 |
![]() |
7
0
是的,这就是为什么这些大问题总是很难解决的原因。 但如果我不得不猜的话,我会说O(n^2),因为你每次都要通过2个循环来执行一些操作。 |
![]() |
danial · 如何在多个字符串的每个位置找到最频繁的字符 2 年前 |
![]() |
Manny · 如何比较Perl中的字符串? 2 年前 |
![]() |
Diret · 获取范围内每个数字的子倍数的算法 2 年前 |
![]() |
Saif · 排序时python如何决定何时调用比较器? 2 年前 |