概述
算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很大的区别。
主要还是从算法所占用的「时间」和「空间」两个维度去考量。
时间维度:是指执行当前算法所消耗的时间,我们通常用「时间复杂度」来描述。
空间维度:是指执行当前算法需要占用多少内存空间,我们通常用「空间复杂度」来描述。
时间复杂度的计算并不是计算程序具体运行的时间,而是算法执行语句的次数。
当我们面前有多个算法时,我们可以通过计算时间复杂度,判断出哪一个算法在具体执行时花费时间最多和最少。
常见的时间复杂度有:
常数阶O(1),
对数阶O(log2 n),
线性阶O(n),
线性对数阶O(n log2 n),
平⽅阶O(n^2),
⽴⽅阶O(n^3)
k次⽅阶O(n^K),
指数阶O(2^n)。
例题:
1:for(i=1; i<=n; ++i){
j=1; j++}
解: 执行第一次:i=1 j=1
执行第二次:i=2 j=2
执行第三次:i=3 j=3
执行第n次: i=n j=i=n
所以时间复杂度为O(n)
2:for(i=0;i<n;i++)
for(j=0;i<m;j++)
a[ i ] [ j ]=0;
解:第一层for循环的执行次数:n
第二层for循环的执行次数:m
所以时间复杂度为O(n*m)
3:int x=0,i,j;
for(i=1;i<n;i++)
for(j=1;j<2*i;j++)
x++;
解:第一层for循环的执行次数:n
第二层for循环的执行次数:log2n
所以时间复杂度为O(nlog2n)
4:
5:
最后
以上就是糟糕夏天为你收集整理的时间复杂度例题例题:的全部内容,希望文章能够帮你解决时间复杂度例题例题:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复