算法描述
算法需要用一种语言来描述,常用的算法描述方法有如下几种:
(1) 使用自然语言。自然语言描述形式也称文字描述,是算法最原始的表现形式。这种形式直接记录了人们求解问题的思维过程,简单直观。为了便于理解和阅读,最好采取分步骤的叙述方式,将处理步骤描述得更具条理性和准确性。
(2) 使用流程图。用流程图描述算法时,要注意使用规范的流图符号。如图所示,矩形框用于书写处理步骤,菱形框用于书写判断/选择,椭圆形框用于表示起始和终止。用流程图描述大型程序时,通常按描述的精细度分成若干级,先画粗框,再逐步细化。

图 流程图符号
(3) 使用某种程序设计语言。需要正确运用程序设计语言来描述算法。不过直接使用程序设计语言并不容易,而且不太直观,常常需要借助于注释才能使人看明白。
(4) 使用类程序设计语言。类语言是以某种通用的程序设计语言作为基础,对其略加改造而形成的一种“非正规的”语言。比如,类C、类PASCAL、类JAVA等都是常用的算法描述的工具。类语言忽略高级程序设计语言中一些严格的语法规则与描述细节,因此它比程序设计语言更容易描述和被人理解,而比自然语言更接近程序设计语言。它虽然不能直接执行,但很容易被转换成高级语言。用类语言书写的程序称为伪程序或伪代码。
课程采用类C语言作为算法描述工具,类C语言是一种伪码语言。书中所描述的算法需要大家按照C语言的规范修改之后才可在计算机上执行。
“数据结构与算法设计”课程的主要内容包含三种基本的数据结构:线性表、树和二叉树、图;两种基本技术:排序和查找。
(1)基本的数据结构如表所示

(2) 查找与排序。
查找方法包含有:静态查找表的查找方法(顺序查找、折半查找、分块查找)、动态查找表的查找方法(二叉排序树、平衡二叉树、B树)、哈希表的查找。
排序方法包括:简单的排序方法(简单选择排序、直接插入排序、希尔排序、冒泡排序)、先进的排序方法(快速排序、归并排序、堆排序)、基数排序方法。
“数据结构与算法设计”课程的学习方法
“数据结构与算法设计”课程的教学目标是使学生学会分析数据对象的特点,掌握数据组织的方法和在计算机中的存储方式,能够对具体问题中所涉及的数据选择合适的逻辑结构、存储结构,进而在此基础上,对各种具体操作设计高效的算法,培养良好的程序设计技能。在学习过程中,建议注意以下几个方面:
(1)非数值计算,这是数据结构这门学科的应用范围。比如,学生信息管理中的学生信息,每个学生信息包含学号、姓名、性别、年龄等,无法用具体的数值表达。
(2)操作对象,具体问题中的数据及其表示的形式。比如,学生信息管理中的学生记录就是操作对象。
(3)关系,即数据间的关系。比如,学生信息管理中的学生记录之间可以按学号逐个表示到计算机中,学生记录之间存在着线性关系。
(4)操作,即针对数据元素的操作。比如,学生信息管理中,查找、插入、删除某个学生信息等。
(5)算法复杂度,即对操作实现的算法进行性能分析。
数据结构的学习过程是进行复杂程序设计的训练过程,不仅要理解和掌握数据结构的基本内容,还要培养一定的抽象思维能力和应用所学知识解答复杂问题的能力。因此,学习数据结构,仅仅局限于课堂、做习题是远远不够的,必须经过大量实践训练,在实践中体会各种数据结构及算法的魅力。