计算机科学导论数据结构与算法.pptVIP

  1. 1、本文档共114页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 2021/3/17 流程图 N Y 循环体 条件 循环体 循环条件 N–S流程图 2021/3/17 (2)用N-S流程图表示算法 输入半径R 输出 S、L的值 π*R*R ?S 2*π*R ?L 例:求给定半径R的圆面积和圆周长 开始 输出 S、L的值 结束 输入半径R π*R*R ?S 2*π*R ?L 顺序 2021/3/17 开始 输出 S的值 结束 输入R R ?S -R ?S R≥0 Y N 选择 输入R 输出 S的值 R ?S - R ?S Y R ≥0 N 例:求给定数R的绝对值 2021/3/17 例: 给定K值,求T=1+2+3+…+K 开始 输出 T 的值 结束 输入K T+I ?T I+1 ?I I≤K Y N 1?I,0 ?T 循环 输入K 输出 T 的值 I≤K 1?I,0 ?T T+I ?T I+1 ?I 伪代码是算法的一种类似英语的表示法。它是部分英语和部分结构化代码的组合。 英文代码部分采用不严格的语法,很容易看懂; 代码部分包含基本算法结构(顺序、选择和循环)的扩展形式。 目前还没有伪代码的标准。 3. 伪代码 2021/3/17 伪代码描述算法的一般组成: 算法头:算法的名字。 目的、条件和返回值: 目的:有关算法要做什么的简短说明 前置条件:列出算法所有前驱条件 后置条件:指出算法产生的影响 返回值:算法返回的结果或无返回值 语句序号:表示语句之间的附属关系。 2021/3/17 例:用伪代码描述在一数列中找最小值的算法 Algorithm (算法):Finding Smallest Purpose(目的):在一数列中找最小值 Pre(前置条件):List of numbers(数列) Post(后置条件):None Return(返回值):The smallest 3 2 4 1 6 a: S 3 2 1 算法:设数列中第一个数为最小值S,然后用后续数依次与S比较,若比S小,则用该数替换原S的值,全部比较完成后S即最小值。 2021/3/17 1.Set smallest to the first number 2.Loop(not end of list) 2.1 if(next number smallest) 2.1.1 set smallest to next number 2.2 end if 3. end loop 4. return smallest End Finding Smallest 数列?ai(i=1,5) a1 ?S, 2? i i ≤5 Y aiS N ai ?S i+1?i 返回最小值S 2021/3/17 1. 数列?ai ( i=1,5 ) 2. a1 ?S, 2? i 3. while(i≤5) 3.1 if(aiS ) then ai ?S endif 3.2 i+1?i end while 4. return S 伪代码不一定按上述严格的格式,且可以使用汉字,只要把算法表达清楚即可。 数列?ai(i=1,5) a1 ?S, 2? i i ≤5 Y aiS N ai ?S i+1?i 返回最小值S s=a[1]; i=2; while(i=5) { if(a[i]s ) s = a[i]; i= i+1; } return s; 数列?ai(i=1,5) a1 ?S, 2? i i ≤5 Y aiS N ai ?S i+1?i 返回最小值S 4. 计算机语言 计数 累加 值交换 求最大(小)值 四、基本算法 穷举 迭代 递推 递归 2021/3/17 1. 穷举法 基本思想 首先根据问题的部分条件预估计出答案的范围 在预估计的答案范围内,对所有可能的情况逐一验证。 若某个情况使验证符合题目的全部条件,则该情况是本题目的一个答案。 2021/3/17 分析: 假设a,b分别代表父亲和儿子的年龄,x年后a=2b。根据人的寿命,x取值为:1,2,…,150 问题:父亲今年30岁,儿子今年6岁,在父亲有生之年中,多少年后父亲的年龄是儿子的2倍? 算法: 1. 考察x可能的范围:x=1,2,…,150; 2. 30+x?a, 6+x?b 3. 若a=2b,则输出x。 2021/3/17 开始 结束 输出a,b,x x+1 ?x x≤150 Y N 0 ?x a =2b Y

您可能关注的文档

文档评论(0)

微微 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档