算法分析
来源:互联网 发布:标题优化的好处 编辑:程序博客网 时间:2024/06/10 08:46
【边学边记】之算法分析
定义:算法分析是对一个算法需要多少计算时间和存储空间作定量的分析。 算法(Algorithm)是解题的步骤,可以把算法定义成解一确定类问题的任意一种特殊的方法。在计算机科学中,算法要用计算机算法语言描述,算法代表用计算机解一类问题的精确、有效的方法。算法主要从时间复杂度(算法效率),空间复杂度(占用内存)来评价。
使用下列三个数学定义:
定义:如果存在正常数c和
定义:如果存在正常数c和
定义:
定义:如果
当我们说
这里主要讲时间复杂度的计算
为了简化分析,我们将采纳如下的预定:不存在特定的时间单位。因此,我们将抛弃一些常数系数。我们还将抛弃低阶项,从而我们要做的就是计算大
*一个简单的例子*:
计算
int Sum(int N){int i,PartialSum;PartialSum = 0; /*1*/ for(i = 1;i <= N; i++) /*2*/PartialSum+=i*i*i; /*3*/return PartialSum; /*4*/ }
分析:第1行和第4行占用一个时间单元,第2行初始化i、测试
一般法则
法则1:for循环
一次for循环的运行时间至多是该for循环内语句(包括测试)的运行时间乘以迭代次数。
法则2:嵌套的for循环
从里向外分析这些循环。在一组嵌套循环内部的一条语句总的运行时间为该语句的运行时间乘以该组所有的for循环的大小的乘积。
for example:
下列程序片段为
for(i=0;i<N;i++) for(j=0;j<N;j++) k++;
法则3:顺序语句
将各个语句的运行时间求和即可。
法则4:IF/ELSE语句
for example:
if(condition) S1else S2
一个if/else语句的运行时间从不超过判断再加上S1和S2中运行时间长者的总的运行时间。
- 算法分析
- 算法分析
- 算法分析
- 算法分析
- 算法分析
- 算法分析
- 算法分析
- 算法分析
- 算法分析
- 算法分析
- 算法分析
- 算法分析
- 算法分析
- 算法分析
- 算法分析
- 算法分析
- 算法分析
- 算法分析
- 在Azure中创建虚拟机
- thinkphp中save方法更新的值和原来的值一样的时候返回false
- APK反编译之一:基础知识--smali文件阅读
- jQuery阻止事件冒泡
- 语言基础-函数
- 算法分析
- 人工智能这么火,.ai会不会成为下一个.com?
- 用HSSFWorkbook来对excel进行读操作
- 【BZOJ】1029 [JSOI2007]建筑抢修 贪心+堆
- Android自定义View实现简单的折线图、柱状图
- iOS下单签名串之字典通过key值进行降序排列
- mysql 修改root密码
- ubuntu安装和查看已安装的几种方法
- MFC下写简易计算器