计算机求解问题
问题→抽象出问题的模型→求模型的解
- 数值问题→数学方程
- 非数值问题→数据结构(关系、操作)
数据基本结构
- 集合结构:无关系
- 线性结构:一对一
- 树形结构:一对多
- 图形结构:多对多
算法特性
- 输入性
- 输出性
- 有限性
- 确定性
- 可行性
算法设计的基本要求
- 正确性
- 可读性
- 健壮性
- 高时间效率
- 高空间效率
和算法执行时间相关的因素
- 算法选用的策略
- 问题的规模
- 问题的规模
- 编写程序的语言
- 编译程序产生机器代码质量
- 机器执行指令速度机器执行指令速度
算法分析
- 算法执行所耗费的时间,与该算法中所有语句的执行总次数成正比 。
- 语句频度:算法中的所有语句的执行的总次数 ,记为:T(n) 。
- 时间复杂度:把T(n)表示成同数量级函数的形式:T(n)=O(g(n)),则O(g(n))称为算法的时间复杂度,描述了当n充分大的时候算法的语句频度的数量级。
- 常见的时间复杂度有O(1), O(log n) ,O(n),O(n2),O(n3), O(2n),分别称为常量阶、对数阶、线性阶、平方阶、立方阶和指数阶。O(1)<O(log n)<O(n)<O(n2)<O(n3)<O(2n)
for(i=2; i<=n; ++i)
for(j=2; j<=i-1; ++j)
{++x; a[i,j]=x;}
++x 语句频度为:
1+2+3+ … +n-2 = (n-1)(n-2)/2 = (n*2-3*n+2)/2
T(n)=O(n2) 平方阶
- 空间复杂度:在算法执行过程中需要的辅助空间数量,记为:S(n) = O(f(n))。
本文深入探讨了计算机求解问题的过程,从问题抽象到模型求解,详细讲解了数值与非数值问题的数据结构,包括集合、线性、树形和图形结构。同时,介绍了算法的特性、设计要求及执行时间相关因素,分析了时间复杂度和空间复杂度的概念。
876

被折叠的 条评论
为什么被折叠?



