相关疑难解决方法(0)

如何找到算法的时间复杂度

问题

如何找到算法的时间复杂度?

在SO上发布问题之前我做了什么?

我走过了这个,和许多其他链接

但是,我没有能够找到关于如何计算时间复杂度的明确而直接的解释.

我知道什么 ?

假设代码如下所示:

char h = 'y'; // This will be executed 1 time
int abc = 0; // This will be executed 1 time
Run Code Online (Sandbox Code Playgroud)

说一个像下面这样的循环:

for (int i = 0; i < N; i++) {        
    Console.Write('Hello World !');
}
Run Code Online (Sandbox Code Playgroud)

int i = 0; 这只会执行一次.实际计算时间i=0而不是声明.

我<N; 这将执行N + 1

i ++; 这将被执行N

所以这个循环所需的操作数量是

{1+(N + 1)+ N} = 2N + 2

注意:这仍然可能是错误的,因为我对计算时间复杂度的理解没有信心

我想知道什么? …

algorithm complexity-theory time-complexity

845
推荐指数
8
解决办法
63万
查看次数

权力的时间复杂度()

我实现了这个功能,power()这需要两个参数ab并计算b.

typedef long long int LL;

LL power(int a,int b)
{
   int i = 1;
   LL pow = 1; 
   for( ; i <= b ; ++i )
     pow *= a;
   return pow;
}
Run Code Online (Sandbox Code Playgroud)

鉴于:a b属于范围long long int.
问题:如何降低算法的时间复杂度?

c c++ algorithm time-complexity

18
推荐指数
3
解决办法
2万
查看次数

在O(n)和常数空间中找到重复

可能重复:
简单的面试问题变得更难:给定数字1..100,找到丢失的数字
在线性时间和恒定空间中找到数组中缺失和重复的元素

我在一个论坛上看到了一个有趣的问题.

你有100个元素,从1到100,但是由于错误,其中一个数字重复另一个重复自己.例如1,99,3,...,99,100数组不是排序格式,如何找到重复数?

我知道哈希可以做O(n)时间和O(n)空间,我需要O(1)空间.

algorithm

6
推荐指数
2
解决办法
3415
查看次数

标签 统计

algorithm ×3

time-complexity ×2

c ×1

c++ ×1

complexity-theory ×1