算法与数据结构
一个程序主要包括两方面信息:
(1)对数据的描述。 在程序中要指定用到哪些数据,以及这些数据的类型和数据的组织形式。就是数据结构(data structure)。
(2)对操作的描述。 要求计算机进行操作的步骤,也就是算法(algorithm)。数据是操作的对象,操作的目的是对数据进行加工处理,以得到期望的结果。作为计算机程序设计人员,必须认真考虑和设计数据结构和操作步骤(即算法)。著名计算机科学家Nikiklaus Wirth提出一个公式: 程序=算法+数据结构。
算法+数据结构-=程序
到今天这个公式对于过程化程序依然适用。实际上,一个过程化的程序除了以上两个主要要素之外,还应当采用结构化程序设计方法进行程序设计,并且用某一种计算机语言表示。因此,算法、数据结构、程序设计方法和语言工具四个方面是一个程序设计人员所应具备的知识,在设计一个程序时要综合运用这几个方面的知识。算法是灵魂,数据结构是加工对象,语言是工具,编程需要采用合适的方法。程序中的操作语句,实际上就是算法的体现。显然,不了解算法就谈不上程序设计。
什么是算法
对于一个问题,可以有不同的解题方法和步骤。因此,为了有效的进行解题,不仅需要保证算法正确,还要考虑算法的质量,选择合适的算法、
计算机算法可以分为两大类别。数值运算算法和非数值运算算法。数值运算的目的是求数值解,例如求方程的根、求一个函数的定积分等,都属于数值运算范围。非数值运算涉及面十分广泛,最常见的是用于事务管理领域,例如对一批职工按姓名排序、图书检索、人事管理等,目前,计算机在非数值运算方面的应用远远超过了在数值运算方面的应用。
由于数值运算往往有现成的模型,可以运用数值分析方法,因此对数值运算算法的研究比较深入,算法比较成熟。对各种数值运算都有比较成熟的算法可供选用。非数值运算的种类繁多,要求各异,难以做到全部都有现成的答案,因此只有一些典型的非数值运算算法有成熟的算法可供使用。许多问题往往需要使用者参考已有的类似算法的思路,重新设计解决特定问题的专门算法。
- 点赞
- 收藏
- 关注作者
评论(0)