【发布时间】:2015-07-10 15:13:58
【问题描述】:
我读到了算法的时间复杂度,但我不知道我是否理解……下面的所有示例都是用 C++ 创建的。如果我错了,请告诉我:
O(1):
int k;
k = 0;
O(n):
for(int i=0; i<n; i++) {
k[i] = i%10;
}
O(n^2):
for(int i=0; i<n; i++) {
for(int j=0; j<n; j++) {
k[j] = i%10;
}
}
O(n^k)(k 是一个已知数字 - 有 k 用于语句):
for(int i=0; i<n; i++) {
for(int j=0; j<n; j++) {
.......
for(int f=0; f<n; f++) {
k[j][f] = p%10;
}
.......
}
}
什么是
O(k^n)?O(log n)和O(n * log n)是什么?请给我一个算法(代码)示例。上面的例子我错了吗?
【问题讨论】:
-
Binary search 是(最坏情况)
O(logN)算法的经典示例 -
为什么是-1?请解释我编辑问题以使其更好。
-
可能是-1,因为它是家庭作业或测试题。
-
@dbilz Homework questions are not off-topic if asked properly。我认为反对票是因为这是一个相当广泛的问题。这里有几个请求 a) 展示了一堆代码 sn-ps 示例及其复杂度 b) 解释空间复杂度和时间复杂度之间的区别。如 awesomeyi 共享的链接所示,如果您搜索第一个请求,这将得到很好的记录。
标签: c++ algorithm big-o time-complexity complexity-theory