大学算法教程.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
大学算法教程 第一章 1.1算法 1.1算法 算法单单有正确性和终止性是不够的能够正确解决问题的算法也许会因为在计算机上所需执行时间太长或者所占用的储存空间太大,实际上好使不能用。 例2,密码术。密码术是指人们交换信息时不让非授权用户擅截获的方法。从正确性和终止性的观点看,目前所采用的大多数密码系统都不难破译。假定我们知道加密函数e(s,k),它有明码电文s和密钥k,产生加密的电文e(s,k)。一般说来这个加密算法都可以被掌握,并且迅速地加以计算(为了加密必须执行这个算法)。这里就有一个算法,它可以更具一定的加密电文c,产生相应的明码电文s(如果有相应明码电文的话):对所有可能的密钥k和所有可能的明码电文s,计算e(s,k),并把结果与c比较。如果找到一个s和k,使得e(s,k)=c,则送回s和k。这种蛮干的办法可以破解很多现有的加密系统;但是这种办法所花费的时间太长,并没有实用价值。 作业: 1写一个算法,在a,b,c中找出中间的那个。 2将在小学里学到的两个十进制正整数想加的标准方法写成一个算法。 4哥德巴赫猜想指出,每个大于2的偶数都是两个质数之和。智力有个算法,验证哥德巴赫猜想是否正确: 1)令n=4。 2)若n不是两个质数之和,则输出“否”,并停止。 3)否则n加2,返回第2步。 4)输出“是”,并停止。 这样一个程序具有算法的那些特性。其中哪些猜想有赖于哥德巴赫猜想的正确性。 1.2表述算法的伪代码 尽管有时候完全可以用平常的语言来表述一个算法,不过计算机科学家还喜欢用伪代码。伪代码(pseudocode)表述精确,结构清晰,通用性强。之所以称为伪代码是因为它是实际的计算机语言,例c++和java,很相像。伪代码又都种版本。有一点它与实际的计算机语言有所不同,在实际的计算机语言中必须注意分号,字幕的大小写,专用词等等,而为代码的各种版本都可以用,只要他的命令不含糊和形状上相似,即使语法上不严格也不要紧。 下面使用伪代码。 1.2.1找出三个数中的最大值。本算法找出a,b,c三个书中的最大值。 Input Parameters; a,b,c Output paramete: x max(a,b,c,x){ x=a if(bx)//若b大于x,更新x x=b if(cx)//若c大于x,更新x x=c } 函数的第一行包括该函数的名称,随后是函数的参数(在圆括号里)。参数表示函数可用的数据,变量,数组等等。在算法1.2.1中参数是三个输入值a,b,c,以及输出参数x,x被赋值威三个输入之中最大值被函数执行的语句有大括号括起来。 在if语句 if(condition) action 中,如果condition(条件)为真,action(动作)就执行,并且将控制传递给action后的语句。如上所述,我们用缩排来表示组成action的语句。并且,如果action有多条语句组成,则把它们包括在大括号里。在if语句中,多语句的action例子是: if(x=0){ x=x+1 a=b+c } 条件语句的另一种形式是if else语句 if(condition) action1 else action2 中,如果condition为真,就执行action1(而不是action2),并且把控制传递给跟随在action2后面的语句。如果condition为假,执行action2(而不是action1),并且把控制传递给跟随在后面的语句。如果action1和action2有多条语句组成,那么就应该把它们扩在大括号里。 两个在正斜杠符号、、表示一个注解的开始,一直延续到末。算法1.2.1中注解的例子是: //若b大于想,更新x 注解并执行,只是为了帮助阅读着理解算法。 算法表示中,保留词(例如,if)用常规字体表示,而用户自选的词(例如,函数名max,还有变量x等)用斜体表示。 return语句 return x 结束一个函数,并把x的返回值给这个函数的调用者。例如,对算法1.2.1中三个数中的最大只可以不用输出参数来存放,而把算法写成: max(a,b,c){ x=a if (bx)//若b大于x,更新x x=b if(cx)//若c大于x,更新x x=c return x } 语句return只是用来结束函数。如果没有return语句,函数在最后一个大括号前就会

文档评论(0)

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

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

1亿VIP精品文档

相关文档