论文部分内容阅读
【摘 要】《数据结构》是计算机专业的一门核心课程。计算机科学和应用领域,广泛地使用着各种数据的集合。这些集合中的数据不是孤立的,而是有着内在的联系。学好数据结构,也是为学习“操作系统”、“编译原理”、“数据库系统原理”、“人工智能”等后续课程提供必要的知识准备。很多初学者在学习《数据结构》时,往往感到数据结构很抽象,往往把数据结构、算法相混,甚至把数据结构误认为是程序设计语言。文章主要是谈谈数据结构及算法之间的关系。
【关键词】数据结构算法程序程序设计
很多初学者在学习《数据结构》这门课时,往往感到比较抽象,比较难懂。常常把数据结构、算法和程序设计语言相混。那么什么是数据结构呢?数据结构、算法和程序设计之间又有哪些区别与联系呢?
一、数据结构
数据结构是一门研究非数值计算的程序设计问题中计算机操作对象以及它们之间关系和操作的学科。
(一)概念与术语:
数据(data)—所有能输入到计算机中去的描述客观事物的符号。
数据元素(data element)—数据的基本单位,也称节点(node)或记录(record)。
数据项(data item)—有独立含义的数据最小单位,也称域(field)。
数据结构(data structure)—数据元素和数据元素关系的集合。
(二)数据结构相关三个问题
1.数据的逻辑结构:反映数据之间的逻辑关系。
三种基本结构:
线性结构:结构中的数据元素存在着线性(一对一)的关系。
树形结构:结构中的数据元素存在着层次(一对多)的关系。
图形结构:结构中的数据元素存在着任意(多对多)的关系。
2.任何数据结构在逻辑上可描述为 Group=(D,R)
其中:D是数据元素的集合, R是D上的关系集合。
数据的存储结构:数据在计算机内部的存储方式。
数据的操作:数据的操作即是对数据进行的处理。
3.高标准的数据结构能使运行效果及储存效率更高,数据结构运行快与慢主要与检索算法和索引技术效率高低相关。在各式各样的计算机程序的设计中,选择设计什么样的数据结构是一个最基本的考虑因素。经过工作人员及系统操作人员大量实践证明,一个计算机系统完成质量好与坏,最终取决于最初数据结构定位的高低,使用一个优质的数据结构,在系统后期运算及使用中都会有一个良好的运行环境。所以不管是在做系统时定先定位数据结构,根据特定算法来选择相适用的数据结构。数据结构在整个环节都是非常重要的。
二、算法
(一)用计算机制作一个操作程序时,需要经过以下几个步骤:
1.从程序目标中抽象一个合适的数学模型
2.设计计算分解数学模型的算法
3.编辑系统程序、进行测试、并最终调整至适配过关。
分析问题是数学模型的实质,从不断的分析问题中提取操作的对象,找出这些操作对象之间的操作关系,最后用数学语言进行表述与计算。
(二)算法是由基本运算及规定的运算顺序所构成的完整的解题步骤。计算机算法与数据结构之间的關系,算法最终依附于数据结构,数据结构直接影响算法的选择和运行效率。运算是计算机完成的,这就要设计计算机在操作时对相的一些操作模式,如插入、删除和修改的算法 。也就是说,数据结构还需要给出每种结构类型所定义的各种运算的算法。
(三)算法的设计最终取决于数据(逻辑)结构,而算法的实现依赖于采用的存储结构。数据的运算是在数据的逻辑结构上定义的操作算法,如检索、插入、删除、更新的排序等。算法是指:利用编程语言功能解决实际问题的方法,也可以理解为组织编程语句的方法,是逻辑概念。算法是一系列解决问题的指令,如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。算法可以理解为由基本运算及规定的运算顺序所构成的完整的解题步骤。
(四)算法与数据结构研究的目的简单地说就是优化代码,提高程序执行效率。打个比方:把一堆无顺的数据通过一个算法实现顺序排列实现方法太多太多, 但是也许运行速率最快的占用的存储空间很大也许运行速率不是很快的占用的存储空间却很小, 所以要通过算法与数据结构分析。
(五)算法就是一个处理的方法,比如排序算法,就是为了完成对一组数据排序。查找算法,就是为了在一个集合中查找需要的项。除此之外,还有很多算法,比方说,加密、压缩、图像处理。而数据结构就是数据的结构。比方说队列、堆、栈、链表、树等等。
三、结束语
所有的算法必须基于数据结构生存。也就是说,我们对于任何算法的编写,必须依赖一个已经存在的数据结构来对它进行操作,数据结构成为算法的操作对象,这也是为什么算法和数据结构两门分类不分家的概念,算法在没有数据结构的情况下,没有任何存在的意义;而数据结构没有算法就等于是一个尸体而没有灵魂。总之,数据结构、算法和程序之间的关系,就是“数据结构+算法=程序设计”。
参考文献:
[1]许卓群,张乃考,杨科清,唐世渭《数据结构》高等教育出版社 1987
[2]严蔚敏,吴伟民《数据结构》清华大学出版社 1992
[3]徐绪松《数据结构与算法》武汉大学出版社 1987
[4]曹新谱《算法设计与分析》湖南科学技术出版社 1984
作者简介:
时华德 (1972—)男,江西九江人,现任职于九江市技工学校。
【关键词】数据结构算法程序程序设计
很多初学者在学习《数据结构》这门课时,往往感到比较抽象,比较难懂。常常把数据结构、算法和程序设计语言相混。那么什么是数据结构呢?数据结构、算法和程序设计之间又有哪些区别与联系呢?
一、数据结构
数据结构是一门研究非数值计算的程序设计问题中计算机操作对象以及它们之间关系和操作的学科。
(一)概念与术语:
数据(data)—所有能输入到计算机中去的描述客观事物的符号。
数据元素(data element)—数据的基本单位,也称节点(node)或记录(record)。
数据项(data item)—有独立含义的数据最小单位,也称域(field)。
数据结构(data structure)—数据元素和数据元素关系的集合。
(二)数据结构相关三个问题
1.数据的逻辑结构:反映数据之间的逻辑关系。
三种基本结构:
线性结构:结构中的数据元素存在着线性(一对一)的关系。
树形结构:结构中的数据元素存在着层次(一对多)的关系。
图形结构:结构中的数据元素存在着任意(多对多)的关系。
2.任何数据结构在逻辑上可描述为 Group=(D,R)
其中:D是数据元素的集合, R是D上的关系集合。
数据的存储结构:数据在计算机内部的存储方式。
数据的操作:数据的操作即是对数据进行的处理。
3.高标准的数据结构能使运行效果及储存效率更高,数据结构运行快与慢主要与检索算法和索引技术效率高低相关。在各式各样的计算机程序的设计中,选择设计什么样的数据结构是一个最基本的考虑因素。经过工作人员及系统操作人员大量实践证明,一个计算机系统完成质量好与坏,最终取决于最初数据结构定位的高低,使用一个优质的数据结构,在系统后期运算及使用中都会有一个良好的运行环境。所以不管是在做系统时定先定位数据结构,根据特定算法来选择相适用的数据结构。数据结构在整个环节都是非常重要的。
二、算法
(一)用计算机制作一个操作程序时,需要经过以下几个步骤:
1.从程序目标中抽象一个合适的数学模型
2.设计计算分解数学模型的算法
3.编辑系统程序、进行测试、并最终调整至适配过关。
分析问题是数学模型的实质,从不断的分析问题中提取操作的对象,找出这些操作对象之间的操作关系,最后用数学语言进行表述与计算。
(二)算法是由基本运算及规定的运算顺序所构成的完整的解题步骤。计算机算法与数据结构之间的關系,算法最终依附于数据结构,数据结构直接影响算法的选择和运行效率。运算是计算机完成的,这就要设计计算机在操作时对相的一些操作模式,如插入、删除和修改的算法 。也就是说,数据结构还需要给出每种结构类型所定义的各种运算的算法。
(三)算法的设计最终取决于数据(逻辑)结构,而算法的实现依赖于采用的存储结构。数据的运算是在数据的逻辑结构上定义的操作算法,如检索、插入、删除、更新的排序等。算法是指:利用编程语言功能解决实际问题的方法,也可以理解为组织编程语句的方法,是逻辑概念。算法是一系列解决问题的指令,如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。算法可以理解为由基本运算及规定的运算顺序所构成的完整的解题步骤。
(四)算法与数据结构研究的目的简单地说就是优化代码,提高程序执行效率。打个比方:把一堆无顺的数据通过一个算法实现顺序排列实现方法太多太多, 但是也许运行速率最快的占用的存储空间很大也许运行速率不是很快的占用的存储空间却很小, 所以要通过算法与数据结构分析。
(五)算法就是一个处理的方法,比如排序算法,就是为了完成对一组数据排序。查找算法,就是为了在一个集合中查找需要的项。除此之外,还有很多算法,比方说,加密、压缩、图像处理。而数据结构就是数据的结构。比方说队列、堆、栈、链表、树等等。
三、结束语
所有的算法必须基于数据结构生存。也就是说,我们对于任何算法的编写,必须依赖一个已经存在的数据结构来对它进行操作,数据结构成为算法的操作对象,这也是为什么算法和数据结构两门分类不分家的概念,算法在没有数据结构的情况下,没有任何存在的意义;而数据结构没有算法就等于是一个尸体而没有灵魂。总之,数据结构、算法和程序之间的关系,就是“数据结构+算法=程序设计”。
参考文献:
[1]许卓群,张乃考,杨科清,唐世渭《数据结构》高等教育出版社 1987
[2]严蔚敏,吴伟民《数据结构》清华大学出版社 1992
[3]徐绪松《数据结构与算法》武汉大学出版社 1987
[4]曹新谱《算法设计与分析》湖南科学技术出版社 1984
作者简介:
时华德 (1972—)男,江西九江人,现任职于九江市技工学校。