目录
一.时间复杂度
1.1定义
1.2时间复杂度的分类
1.3时间复杂度基本计算规则
1.4例子
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8
1.4.9
1.4.10
1.4.11
1.4.12
1.4.13
二.空间复杂度
2.1定义
2.2推导大O阶方法
一.时间复杂度
1.1定义
算法的时间复杂度是一个函数,算法中的基本操作的执行次数,为算法的时间复杂度
常用O()表示
1.2时间复杂度的分类
最优时间复杂度:算法完成工作最少需要多少基本操作
最差时间复杂度:算法完成工作最多需要多少基本操作
平均时间复杂度:算法完成工作平均需要多少基本操作
1.3时间复杂度基本计算规则
1.基本操作即只有常数项,认为其时间复杂度为0(1)
2.顺序结构,时间复杂度按加法进行计算
3.循环结构,时间复杂度按乘法进行计算
4.分支结构,时间复杂度取最大值
5.判断一个算法效率时,往往只需要关注操作数量的最高次项,其他次要项和常数项可以忽略
6.在没有特殊说明时,我们所分析的时间复杂度都是指最坏时间复杂度
1.4例子
1.4.1
i = n*n; whlie(i != 1) i = i/2;
第一步 :列出循环趟数t与每轮循环i的变化值
t | 0 | 1 |
i | n^2 | n^2/2 |
第二步 :找到t与i的关系
t = n^2/2*i
第三步 :确定循环停止条件
i ==1
第四步 :联立2,3步解方程
t = 2 2n
1.4.2
x = 0; while (n>=(x+1)*(x+1)) x = x+1;
第一步 :列出循环趟数t与每轮循环x的变化值
t | 0 | 1 |
x | 0 | 1 |
第二步 :找到t与x的关系
t = x
第三步 :确定循环停止条件
n = (x+1)^2
第四步 :联立2,3步解方程
n = (t+1)^2
t=根号n-1
T=根号n
1.4.3
int i = 1; while (i
文章版权声明:除非注明,否则均为VPS857原创文章,转载或复制请以超链接形式并注明出处。
还没有评论,来说两句吧...