以下代码的时间复杂度是多少?
void fun(int n)
{
int j = 1, i = 0;
while (i < n)
{
// Some O(1) task
i = i + j;
j++;
}
}
循环变量'i'增加1,2,3,4 ...直到i变得大于或等于n。
经过x次迭代后i的值为x(x + 1)/ 2。所以如果循环运行x次,那么x(x + 1)/ 2 <n。
因此,时间复杂度可以写为Θ(√n)。
以下代码的时间复杂度是多少?
void fun(int n)
{
int j = 1, i = 0;
while (i < n)
{
// Some O(1) task
i = i + j;
j++;
}
}
循环变量'i'增加1,2,3,4 ...直到i变得大于或等于n。
经过x次迭代后i的值为x(x + 1)/ 2。所以如果循环运行x次,那么x(x + 1)/ 2 <n。
因此,时间复杂度可以写为Θ(√n)。
转载于:https://www.cnblogs.com/wongyi/p/7685071.html