首页计算机书籍平面设计《计算机算法分析与设计》李筑艳编著
Fate

文档

291

关注

0

好评

0
PDF

《计算机算法分析与设计》李筑艳编著

阅读 549 下载 0 大小 19.07M 总页数 283 页 2022-11-21 分享
价格:¥ 10.00
下载文档
/ 283
全屏查看
《计算机算法分析与设计》李筑艳编著
还有 283 页未读 ,您可以 继续阅读 或 下载文档
1、本文档共计 283 页,下载后文档不带www.pdfdz.com水印,支持完整阅读内容。
2、古籍基本都为PDF扫描版,所以文档不支持编辑功能,即不支持文档内文字的复制粘贴。
3、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
4、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
5、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。
二2一计算机算法分析与设计(⑤)可终止性:算法必须可以终止,即不能进入死循环。程序:一个计算机程序被认为是使用某种程序设计语言对一种算法的具体实现。当然,由于使用任何一种现代计算机程序设计语言都可以实现任何一种算法,所以可能有许多程序都是同一种算法的实现。以上内容可总结为:问题是一个函数,或者是从输入到输出的一种映射。算法是一种能够解决问题的、有具体步骤的方法。算法步骤必须无二义性,算法必须正确,步骤有限,必须对所有输入都能终止。程序是算法在计算机程序设计语言中的实现。1.2表述算法的方法我们一旦设计了一个算法,就需要用一定的方式对其进行详细描述。当今描述算法的最常用的两种方法是:(1)使用自然语言描述算法。(2)使用伪代码描述算法。例1.1求1+2+…+n使用(1)自然语言描述算法:我们分别给出两种算法。()设变量X表示加数,Y表示被加数,用自然语言将算法描述如下:①将1赋值给X②将2赋值给y③将X与Y相加结果存放在X中©将Y加1结果存放在Y中同若P小于或等于n,转到步骤回,继续执行:否则算法结束,结果为X。(b)设变量X表示加数,Y表示被加数,用自然语言将算法描述如下:①将n赋值给X①将Y减1结果存放在Y中⑤若Y小于或等于1,转到步骤@,继续执行:否则算法结束,结果为X。使用(2)伪代码描述算法:我们分别给出两种算法。输入:正整数n。输出:1+2+…+n的值。suml(n)4 return s使用该算法时,调用suml(n)函数就可得1+2+·+n的值。输入:正整数n。输出:1+2+…+n的值。sum2(n)1fn=1return lelse4return n+sum2(n-1)同样调用该算法时,调用sum2(n)函数就可得1+2+·+n的值。从以上例子可看出,使用自然语言描述算法,显然是很有吸引力的。然而,自然语言固有的不严密性,使得要想简单清晰地描述算法变得非常的困难。伪代码描述语言是表示算法的一种工具,伪代码是自然语言和类似编程语言组成的混合结构。伪代码往往比自然语言更精确,而且用伪代码生成的算法描述往往会更简洁。它只面向读者,不能直接用于计算机,但很容易转换为计算机上能执行的程序。令人惊讶的是,计算机科学家从来没有对伪代码形式达成过一种共识,所以本书中采用自然语言和最基本的类似C或C++程序语言作为我们的伪代码表示方法,同时取消C或C+程序语言对变量的定义和每行结束使用分号的定义。但为了方便,有的算法也可能直接用自然语言的形式来描述。虽然程序可以看作是另一种表述算法的方式,为什么不直接用程序语言表示呢?因为使用具体的程序设计语言表示算法,很容易被该语言的语法细节所缠绕,而无法集中精力考虑算法的主要思想。而使用伪代码可以按照“自顶向下,逐步求精”的思想,逐步细化到程序语言可以表示的程度。使用伪代码还可以撇开不同程序语言的语法差别,如pascal语言使用”="符号作为赋值,而使用”=”符号作为相等判断,而C或C+语言赋值使用"="符号,而相等判断则使用”一"符号。当对伪代码的符号进行限定,那么使用不同语言的程序员都能够读懂算法,这样更便干使用程序设计语言对算法的实现。下面介绍本书采用类似C或C++语言的伪代码的语法规则。1.3伪代码的语法规则(1)在用伪代码语言描述一个算法时,则开始总是先要对输入与输出参数作必要的说明,并且第一行总是为:算法名(输入、输出参数名)(2)对算法中的伪代码每一行用自然数依次编上行号,每条指令占一行,指令后不跟任何符号,以便对算法进行说明。书写上的“缩进”表示程序中的分支程序结构。这种缩进风格也适用于if then else语句。用缩进来表示程序的块结构可以大大提高伪代码的清晰性;同一模块的语句有相同的缩进量,次一级模块的语句相对其父级的模块语句缩进。例如:语句组在C或C+语言程序中:相同的语句组在伪代码中:
返回顶部