赞
踩
时间复杂度的计算分为三种:
1.单层循环
2.双层循环
3.多重循环
首先讲解单层循环:
总体思路:第一步:找i与t的表达式,第二步:找i的停止条件,第三步:求复杂度。
例题1:
- for(int i=0;i<n;i=i+2)
- {
- }
显然:i=2*t;
i=n停止;所以:2*t=n;t=n/2;时间复杂度为O(n);
例题2:
- for(int i=0;i<n;i=i*2)
- {
- }
显然:i=2的t次幂;i=n;故t=log2n;时间复杂度为log2n;
接着双重循环:
思路:可以运用求面积的思想,外层循环为长,内层循环为宽。
例题;
- for(int i=0;i<n;i++){
- for(int j=0;j<i;j++)
- }
时间复杂度为O(n的平方)
三重循环:
思路:分为两种;
第一种:求体积,(锥体)
x,y,z分别为三个变量的i,j,q,运用体积公式即可求得。
第二种:由内到外逐层计算
附:计算的三条原则:
1.如果运行时间是常量级,用常数表示O(1)
2.只保留时间函数中的最高阶项
3.如果最高阶项存在,则省去最高阶项前面的系数。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。