数据结构01
算法: 为了解决某一类问题所设计的有穷的操作序列
l 有穷性
l 确定性, 每种情况下所应执行的步数与结果是相同的
l 可行性,算法中的所有操作都可以通过己经实现的基本操作运算有限次实现.
l 有输入
l 有输出
算法设计原则
n 算法应该满足以特定的”规格说明”主式给出的需求
n 无语法错误
n 程序对于几组输入数据能够得出满足要求的结果
n 对于精心选择的/典型的/苛刻的几组输入能行出满足要求的结果
n 对于一切合法的输入数据都能得出满足要求的结果
效率:算法执行时间
存储量:算法执行时最大的存储空间
算法效率的衡量方法与准则
1. 事后统计法: 必须执行程序,可以会有其它因素掩盖了算法的本毛贼
2. 事前分析估算法
与算法执行时间相关的因素
1. 算法的选用策略
2. 问题的规模,假如随着问题N的增长,算法的效率以F(N)增长率一样,则可记作 T(N)=O(F(N)),则称T(N)为算法的时间复杂度
a) 算法=控制结构 + 原操作,算法的执行时间= E原操作I的执行次数 * 原操作I的执行时间, 算法的执行时间与原操作的执行次数之和成正比
b) 在算法中选取一种对于所研究的问题来说是基本操作的原操作,以该基本操作在算法中重复执行的次数作为算法运行的时候的衡量准则
3. 编写程序的语言
4. 编译的机器代码的质量
5. 计算机执行指令的速度
例子:
1. For(xxxx)
For(xxxxx)
a+= a*b
*为基本操作