算法运行时间分析
analysis of algorithm run time
大0运行时间是多少?我最困惑的是while循环的运行时间。我知道两个for循环的运行时间都是O(n)。
cin >> n >> min >> max;
for(int i = min; i < n; i++) {
for(int j = 1; j < max; j++) {
total = 1;
while(total < n) {
total = total *2;
}
}
}
target
在while
环中的级数为:
1 2 4 8 ... 2^P
你需要log(2, n)
步骤-即2
碱n
的log
。这个循环是O(log n)
首先,看起来您忘记放大括号了。我是你的代码,事实上,整个循环并不在嵌套的for循环中。实际上,我们有一个毫无意义的嵌套for循环,它只是将total设置为1,然后是一个独立的while循环。第一个的复杂度是O((n - min) * max),第二个是O(log(n))。总时间复杂度是这些的总和。
也许你真正的意思是:
for(int i = min; i<n; i++) {
for(int j =1; j< max; j++) {
total = 1;
while(total < n) {
total = total *2;
}
}
}
这里,整个循环都在嵌套的for循环中。时间复杂度是我们之前计算的倍数,所以是O((n - min) * max * log(n))如果min和max是常数,那么我们可以简化为O(n log n)
相关文章:
- KMP算法和LPS表构造的运行时间
- 如何计算Big-O表示法中的平均渐近运行时间
- 用时钟测量程序的运行时间
- 如何减少代码的运行时间以对齐文本?
- 我的 c++ 应用程序中的运行时间从 0 增加到 60 太快了(例如一毫秒或一微秒)
- 使用 Qt 测量过程的实际运行时间
- 如何执行用 C++ 编写的程序的运行时间?
- 无限运行时间
- 如何优化C++键值程序以获得更快的运行时间
- 这个算法的运行时间复杂度是多少?你是如何分析的
- 两个嵌套循环的运行时间复杂性:二次型还是线性
- 查找我的算法的运行时间,以查找输入在输入方面是否是素数
- 改善调度算法的运行时间
- 通过计数步骤来测量算法的运行时间时遇到问题
- C++算法的运行时间
- 尝试计算算法的运行时间
- 此算法的最坏情况运行时间是多少
- 以下 Prim 算法代码的运行时间
- 算法运行时间分析
- 友好数字:运行时间太长.是什么导致的呢?算法的复杂性