绪论

本文深入探讨了计算机求解问题的过程,从问题抽象到模型求解,详细讲解了数值与非数值问题的数据结构,包括集合、线性、树形和图形结构。同时,介绍了算法的特性、设计要求及执行时间相关因素,分析了时间复杂度和空间复杂度的概念。

计算机求解问题

问题→抽象出问题的模型→求模型的解

  1. 数值问题→数学方程
  2. 非数值问题→数据结构(关系、操作)

数据基本结构

  1. 集合结构:无关系
  2. 线性结构:一对一
  3. 树形结构:一对多
  4. 图形结构:多对多

算法特性

  1. 输入性
  2. 输出性
  3. 有限性
  4. 确定性
  5. 可行性

算法设计的基本要求

  1. 正确性
  2. 可读性
  3. 健壮性
  4. 高时间效率
  5. 高空间效率

和算法执行时间相关的因素

  1. 算法选用的策略
  2. 问题的规模
  3. 问题的规模
  4. 编写程序的语言
  5. 编译程序产生机器代码质量
  6. 机器执行指令速度机器执行指令速度

算法分析

  1. 算法执行所耗费的时间,与该算法中所有语句的执行总次数成正比 。
  2. 语句频度:算法中的所有语句的执行的总次数 ,记为:T(n) 。
  3. 时间复杂度:把T(n)表示成同数量级函数的形式:T(n)=O(g(n)),则O(g(n))称为算法的时间复杂度,描述了当n充分大的时候算法的语句频度的数量级。
  4. 常见的时间复杂度有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) 平方阶

  1. 空间复杂度:在算法执行过程中需要的辅助空间数量,记为:S(n) = O(f(n))。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值