浅析算法在计算机编程中的重要作用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浅析算法在计算机编程中的重要作用
算法是一种解决程序编写方案的准确并且完整的描述,即为解决一系列问题的清晰指令。算法的运算种类极为繁多,其中最为基本的有赋值运算、算术运算、逻辑运算和关系运算等,另外稍为复杂的还有算术表达式和逻辑表达式等。算法是计算机程序编写的灵魂,是发挥程序严谨作用极为有效的工具。如果想编写出好的程序,熟练地掌握算法乃是极为重要的。
标签:算法;数据模型;抽象数据
1.算法的特性
(1)确定性。组成算法的每条指令是清晰的、无歧义的,对特定的输入有特定的输出。
(2)有穷性。算法中的每条指令的执行次数有限,执行每条指令的时间也有限。程序只表现成一段实现算法的代码。
(3)可行性。算法需要考虑程序编程的可能性。
(4)输入。有零或多个外部量作为算法的输入,并且依靠程序的平台来提供。
(5)输出。算法会产生至少一个量作为输出,所输出的内容也需依靠代码来获得支持。
2.数据模型在算法中的重要作用
对于一个明确的编程问题,在设计它的算法之前,应先选用该问题的数据模型,然后则需要清晰了解该数据模型在已知条件下的初始状态和所要达到的结果状态,以及这两个状态之间所隐含的相互关系。然后再探索从此种数据模型的已知初始状态达到要求的结果状态所需运算的几种运算步骤,而这些运算的步骤实际上就是求解该程序编写问题的算法。
按照自顶向下逐步求精的原则,在探索运算的步骤时,首先应该先考虑算法顶层的运算步骤,然后再逐次向下考虑,直至进行到最低层的运算步骤。其中,所谓顶层的运算步骤,就是组成算法的主干部分,在设计时可以先不去考虑它所会用到的一些具体数据。所涉及的数据是数据模型之中的变量。其所涉及的运算需以数据模型中的数据变量作为运算的对象,或作为运算的结果,或两者兼为之。而所谓低层运算步骤,是指在顶层抽象运算之上的具体实现。它们不仅依赖于数据模型的结构,更依赖于数据模型结构的具体表示方法。另外,由于顶层设计和低层实现具有局部化的特点,因此在编写程序过程中所出现的差错也应该是局部的,因而在算法维护方面具有很强的可操作性。
3.算法中的重要概念——抽象数据类型
抽象数据类型是算法的一个数据模型且连同定义在该模型上作为算法构件的一组运算。此概念将数据模型与该模型上的运算紧密地联系了起来。数据模型上的运算依赖于数据模型的具体实现,而数据模型上的运算又以数据模型中的变量为运算的对象,或者说也可以当做一种运算的结果。另外,对于不同的运算组,为了使该运算组中所有运算效率都尽可能地提高,其相应数据模型的具体表示会有所不同。在此种关系之下,数据模型的具体表示反过来又会依赖于数据模型上所进行定义的运算。特别是当不同的运算效率相互制约时,则必须事先将所有运算按其相应的实用频率排列,从而保证使用频率较高的运算。
4.算法在编写程序过程中需要注意的事项
(1)算法设计与数字结构设计分离,允许数据结构自由选择,进行最优比较。
(2)数据模型与该模型上的运算统一在抽象数据类型之中,反映了它们之间相互制约、相互依存的关系。
(3)算法可以呈现为自然模块化,而抽象的数据类型也可以进行任意移动和重复使用。
(4)算法的结构力求清晰,为自顶向下的结构方式,层次分明,具有较强的逻辑性。
(5)算法具有一定的复杂性。算法复杂性的高低往往体现在运行此种算法所需要的编写程序的复杂程度上。复杂程度越高,该算法的复杂性也就会相应地增大。因此,设计出复杂性低的算法是进行算法分析的重要目标。另外,当遇到所给定的问题已经有多种算法时,应选取其中复杂性最低的算法为最佳算法。
编写程序过程中最为重要的思想是算法。想要运用计算机解决一个具体问题,必须合理地运用数学知识,而算法作为此种数学思想的集合归总,则占据了十分重要的地位。算法在计算机程序编写技术中早已发挥出相当广泛的作用,其基本概念、基本指导思想、基本方法,也促使计算机程序编写走入日益完善和成熟的轨道之中。
参考文献:
[1]王晓东.算法设计与分析(第2版)[M].北京:清华大学出版社,2008.
[2]李晶皎.嵌入式语音技术及凌阳16位单片机应用[M].北京:北京航空航天大学出版社,2003.