网站大量收购独家精品文档,联系QQ:2885784924

软件技术基础教案解析.ppt

  1. 1、本文档共79页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.1 算法的基本概念 概念 算法是为解决一个问题采取的方法和步骤。也就是说,算法是为实现某种计算过程而规定的基本动作的执行序列。 算法的实现 – 自动机器解--指令的有限序列。 自动机的能力:对于执行体系来说是一种制约 描述形式的理解能力 实现描述的执行能力 算法的有限自动机解--在有限的存储空间和有限的时间内通过有限的步骤得到预期的结果。 1.1.1 算法的基本特征 1. 能行性(effectiveness): 每一操作都可以通过可实现的基本运算执行有限次来实现 步骤合理性 步骤可操作性 达到预期目的 与具体实现方式和环境有关。 2. 确定性(definiteness): 在所指定的范畴内无模糊性 在所指定的范畴内无多义性。 检验:相同输入 ? 相同输出。 算法的基本特征(续) 3. 有穷性(finiteness) 步骤有穷性 时间有限性 4. 完备性(self-contained) 初始条件应明确 限定范围内条件应齐备 结果可展现 对异常情况的容错性 算法的定义 一组严谨定义运算顺序的规则,并且每一个规则都是有效且明确的,此顺序将在有限的次数下终止并获得预期的结果。 1.1.2 算法的基本要素 对数据对象的运算和操作 针对算法涉及的数据信息 最基本的动作和步骤单元 算法的控制结构 针对算法的过程步骤 控制基本操作和步骤的组合顺序 算法要素描述系统的组成 1. 运算和操作的描述 标识符 运算符: 算术运算符:+,-,*,/ 等 关系运算符:,,==, !=,>=。<= 逻辑运算符:(逻辑与),!(逻辑非),||(逻辑或) 位运算符:,|,~,… 数据传输:赋值,输入,输出等。 算法描述方式 算法描述方式: 框图描述法:用流程图的方式来描述、输入输出、判断、处理分别用不同的框图表示,用箭头表示流程的流向。 非形式描述法:用自然语言,同时还使用一些程序设计语言中的语句来描述算法。 类高级算法语言描述法:常采用类C或C++的所谓伪语言,具有容易编写、阅读和格式统一的特点。 高级算法语言描述法:这是可以在计算机上运行并获得结果的算法描述,使给定的问题能在有限的时间内被计算机执行。 算法描述方式(续) 以求两个整数m、n(m≥n)的最大公因子为例来说明不同算法描述方法。 算法要素描述系统的组成 2. 控制结构—控制基本运算的执行顺序 赋值 选择--条件转移 (多分枝选择) 循环语句 以上三种动作语句的组合可以完成任何复杂的过程序列 赋值语句 赋值语句的形式为 a=e; ,其中a为变量名或数组元素,e为算术表达式或逻辑表达式。 如果a和b都为变量名或数组元素,则可用记号a≒b,表示将a与b的内容进行交换。(或c=a;a=b;b=c;) 控制转移语句 无条件转移语句用如下形式: goto 标号 条件转移语句有以下两种形式: IF ( C ) { S } 或 IF ( C) { S1 } ELSE { S2} 循环语句 WHILE语句的形式为: while(){ }; do{ }while(); FOR语句的形式为: for (i=1;i=end;i++){ }; 其他辅助语句: break; 终止整个循环 continue;退出本次循环 return()语句用于结束算法的执行 READ(或INPUT)语句用于输入 OUTPUT(或PRINT,或WRITE)语句用于输出。 6. 回溯法 试探法 无法总结出求解规律。 无法列举可能的条件和解集。 逐步试探 局部成功,则继续试探。 若失败,沿原路退回若干步,改变条件和方向再试,直至找到解。 八后问题 皇后问题 N皇后问题自然语言描述: 在n行n列的国际象棋棋盘上,若两个皇后位于同一行、同一列、同一对角线上,则称为它们为互相攻击。 n皇后问题的解是指: 找到这n个皇后的互不攻击的布局 思考:1)如何表示棋盘、棋子和布棋? 2)如何描述布棋规则? 3)如何设计布棋步骤? ? ? ? ? ? 基本思路 依次为每一行确定该行皇后的合法位置 安放第i行皇后时,需要在列的方向从0到n-1试探(j = 0, …, n-1) 在第j列安放一个皇后 如果在列、主对角线、次对角线方向有其它皇后,则出现攻击,撤消在第j列安放的皇后: 如果没有出现攻击,在第j列安放的皇后不动 递归安放第i+1行皇后 如果第i行不能安放皇后,则回溯到第i-1行,撤销该行的皇后,并从其所在的下一个列(j+1)继续试探。 程序实现的要

文档评论(0)

三沙市的姑娘 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档