algorithm - 具有两个 for 循环的该算法的时间复杂度

标签 algorithm time-complexity nested-loops binary-search logarithm

你能解释一下如何计算时间复杂度吗

sum1=0;
for(k=1;k<=n;k*=2)
  for(j=1;j<n;j++)
     sum++

我正在考虑以 N 为基数,并尝试计算当

n=1,2,3...n

但我无法概括它。 请有人彻底解释我。 我什至检查了其他类似类型的查询,例如: 说它跟随

1,2,4,8...n so it will be
2^n
nlogn

但我不明白。 我不知道他们怎么说 2^n=logn。 请任何正确解释如何逐步计算..

谢谢:)

最佳答案

k 呈指数增长,因此需要 O(log n) 时间才能达到 n。检查 logarithm 的定义.那是你的外循环。

内部循环是一个简单的O(n)

关于algorithm - 具有两个 for 循环的该算法的时间复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21503128/

相关文章:

java - 如何获取当年1月1日开始至今的小时数?

python - while 循环的时间复杂度

C 二分和线性搜索

C++模板制作具有不同常量的多个版本的函数

c - C语言循环过程中数组元素的值会自行改变

algorithm - 预先计算订单时的线性时间复杂度排序算法

php - 将关联数组转换为索引数组的方法

java - 如何跳过某些数组索引?

algorithm - 联合查找算法

html - jinja 模板内的 html 表中嵌套 For 循环