有人可以帮我找到这个代码的大O吗?我已经尝试过计算它,但我只是不明白怎么做.
int n = //user input
for (int i = 0; i < n; i++){
for (int j = 1; j < n; j = j * 2){
System.out.println(i * j);
}
}
Run Code Online (Sandbox Code Playgroud) Golang 有len(array)和cap(array)。前者返回数组/切片的长度(即数组拥有的元素数量);据我了解,该函数是 O(1); 这使得它立即
cap(array)返回底层数组的容量。然而,这个操作是 O(1) 吗?人们会认为数组的容量是数组具有的一个值,因此可以在 O(1) 时间内看到,但我不能确定
这段代码的Big-O表示法是什么?
for(int i=0; i<10; ++i)
for(int a=0; a<n; ++a){
cout << "*";
cout << endl;
}
Run Code Online (Sandbox Code Playgroud) 我的算法类的作业声称O(n 3)比O(2 n)更有效.
当我将这些函数放入图形计算器时,对于非常大的n(从n = 982左右开始),f(x)= 2 x似乎始终更有效.
考虑到对于函数f(n)= O(g(n)),对于大于某个n 0的所有n,它必须更小,这不意味着从n = 982我们可以说O(2 n)效率更高?
我不知道从哪里开始计算这个函数的时间复杂度。这个函数的 O(时间复杂度)是多少?我了解到答案是 3^n。
int f3(int n) {
if (n < 100)
return 1;
return n* f3(n-1) * f3(n-2) * f3(n-3)
}
Run Code Online (Sandbox Code Playgroud) 我有两个链接列表具有唯一但在洗牌顺序中具有相同的元素.
然后随机元素从list1中删除.如何确定已删除的元素?
例:
list1 0 3 7 8 1
list2 3 7 8 1 0
..deleting ..
list1 - 3 7 8 1
list2 3 7 8 1 0
答案:0
最重要的部分是我需要通过O(N)来完成.
big-o ×6
algorithm ×3
c++ ×2
arrays ×1
go ×1
java ×1
linked-list ×1
methods ×1
nested-loops ×1
pseudocode ×1
sorting ×1