如何找到算法的时间复杂度
问题
如何找到算法的时间复杂度?
在SO上发布问题之前我做了什么?
但是,我无法找到关于如何计算时间复杂度的明确而直接的解释。
我知道什么 ?
假设代码如下所示:
char h = 'y'; // This will be executed 1 timeint abc = 0; // This will be executed 1 time
说一个像下面这样的循环:
for (int i = 0; i < N; i++) { Console.Write('Hello World !');}
int i = 0; 这只会执行一次。时间实际上是计算i=0
而不是声明。
我<N; 这将执行N + 1次
i ++; 这将被执行N次
所以这个循环所需的操作数量是
{1+(N + 1)+ N} = 2N + 2
注意:这仍然可能是错误的,因为我对计算时间复杂度的理解没有信心
我想知道什么?
好吧,所以这些小基本计算我想我知道,但在大多数情况下,我已经看到了时间复杂度
O(N),O(N2),O(log n)的,为O(n!) ......和许多其他,
任何人都可以帮我理解如何计算算法的时间复杂度?我相信有很多像我这样的新手想知道这件事。
手掌心