计算两个代码块的时间复杂度
Computing time complexity for two code blocks
Code 1
如果我们假设以下代码n
可以被 4 整除,那么以下代码的时间复杂度T(n)
是多少?有人可以向我解释一下吗?
for(int i=2;i<=n;i++)
{
for(int j=0;j<=n;)
{
std::cout<<i<<" "<<j<<"n";
j=j+(n/4);
}
}
代码 2
下面嵌套循环的时间复杂度T(n)
是多少?假设n
是 2 的幂。也就是说,n = 2^k
对于一些正整数k
。
for (int i=1; i<=n; i++)
{
j = n;
while(j>=1)
{
<body of the while loop> //Needs θ(1)
j=⌊j/2⌋; // ⌊⌋=>Floor function
}
}
代码 1 是线性的。j += n / 4
表示内循环对于任何值n
运行恒定次数(5(,5n减少到O(n(。
代码 2 是 O(n log(n((。外部循环运行n
次,内部循环运行log2(n)
次,因为它反复将输入分成两半。
相关文章:
- 向量 <int> a {N, 0} 和 int arr a[N] = {0} 的时间复杂度有什么区别
- while循环中while循环的时间复杂度是多少
- 我可以创建一个包含两个变量的 for 循环,但时间复杂度仍然为 O(n) 吗?
- 函数的时间复杂度是多少?
- 计算两个代码块的时间复杂度
- 给定C++代码的时间复杂度是多少?
- 以下递归代码的时间复杂度是多少?
- 此特定代码的时间复杂度是多少?
- 谁能帮我降低以下代码的时间复杂度?
- 以下代码片段的时间复杂度是多少?
- 此代码段的时间复杂度
- 用于搜索的给定代码的时间复杂度是多少
- 如何降低以下代码块的时间复杂度
- 给定代码的时间复杂度
- 这个代码(来自leetcode)的时间复杂度是多少
- &&运算符的 C++ 代码时间复杂度
- 以下代码的时间复杂度是多少
- 什么是"渐近紧时间复杂度"?此代码的时间复杂度是否渐近紧张?
- 优化的c++代码,时间复杂度为O(n2),空间复杂度为0(1),用于后续输入
- 下面代码的时间复杂度