算法设计与数据结构区别
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2009221104220061 彭斌 09软件工程
数据结构跟算法设计的关系
摘要:数据结构与算法设计是计算机专业的两门主要课程,两者之间关系密切,本文主要介绍数据结构跟算法设计的区别与联系,并举例予以说明两者之间的关联。
关键词:数据结构算法设计联系区别
正文:
一、数据结构及其主要研究内容:
计算机是进行数据处理的工具,数据结构主要研究数据的各种组织形式以及建立在这些结构之上的各种算法的实现,它不仅为计算机语言进行程序设计提供了方法性的理论指导,还在更高的层次上总结了程序设计的常用方法和常用讨巧。
数据结构是指数据以及相互之间的联系,可以看作是相互之间存在着的某种特定关系的数据元素的集合。
一般认为,一个数据结构是由数据元素依据某种逻辑联系组织起来的。对数据元素间逻辑关系的描述称为数据的逻辑结构;数据必须在计算机内存储,数据的存储结构是数据结构的实现形式,是其在计算机内的表示;此外讨论一个数据结构必须同时讨论在该类数据上执行的运算才有意义。
在许多类型程度的设计中,数据结构的选择是一个基本的设计考虑因素。许多大型系统的构造经验表明,系统实现的困难程度和系统构造的质量都严重的依赖于是否选择了最优的数据结构。许多时候,确定了数据结构后,算法就容易得到了。有些时候事情也会反过来,我们根据特定算法来选择数据结构与之适应。
不论哪种情况,选择合适的数据结构都是非常重要的。
选择了数据结构,算法也随之确定,是数据而不是算法是系统构造的关键元素。这种洞见导致了许多种软件设计方法和程序设计语言的出现,面向对象的设计语言就是其中之一。
在计算机科学中,数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象(数据元素)以及它们之间的关系和运算等的学科,而且确保经过这些运算后所得到的新结构仍然是原来的结构类型。
二.算法设计及其主要研究内容:
算法是指在解决问题时,按照某种机械步骤一定可以得到问题结果的处理过程。
当面临某个问题时,需要找到用计解决这个问题的方法和步骤,算法就是解决这个问题的方法和步骤的描述。
算法具有有穷性、确定性、可行性、算法有一个或多个的输出、算法有零个或多个的输入。对于算法的设计有以下的质量指标:一是正确性、二是可读性、三是稳健性、四是高效性与低存储需求。
算法是计算机学科中是最具有方法性质的核心概念,被誉为计算机科学的灵魂。
算法有三个主要方面:操作、控制结构、数据结构。
同一个问题可用不同的算法来解决。而一个算法的优劣将影响到程序的效率。
算法分析的目的在于选择合适的算法和改进算法。一个算法的评价主要有以下来评价:
1.时间复杂度
2.空间复杂度
相比而言,现代计算机更多的考虑时间复杂度的问题。因为计算机的存储空间已经相对而言比较容易满足。
三.算法与数据结构相同之处:
程序=算法+数据结构,这说明程序设计的实质就是对确定问题选择一种合适的数据结构跟一种合理的算法。数据结构是基础,而算法设计总是要依赖数据结构来实现的。
算法的设计取决于数据的逻辑结构,而算法的实现依赖于采用的存储结构。算法设计的实质就是对实际的问题采用一种最合理的数据结构,并在此数据结构的基础上找到一个好的算法来实现。采用不同的数据结构,所得到的效果可能会相差甚远。
四.算法与数据结构不同之处:
数据结构着重于数据之间的联系,而不在于实现的过程,而算法设计则不同,它不公要考虑数据之间的联系,还要分析问题实现的过程,并要分析出最优的算法实现,以及算法效率,空间利用率。可以这么说,算法是编程的思想,而数据结构则是实现的逻辑基础。
五、举例说明:
我们以一个学生的相关信息为例,如果要实现将一个学生相关信息进行保存,以最简单的方法可如下实现:
Char sname[10];
Int sid;
Char ssex;
Int grade;
然后我们进行scanf操作对相关数据进行赋值,这种数据结构可行,但是在操作的过程中,却极有可能会忘掉某个数据的输入或者输出,但是却并不好。如果我们定义一个学生类来进行相关操作,不仅可以实现上述赋值功能,而且还可以通过结构体这种数据结构本身的属性在编程时具有的一定来纠错能力来检测是否会输入出错:Sruct stud
{
Char name[20];
Int id;
Char sex;
Int grade;
}
这只是一个小例子,但是却可以看出数据结构对一个程序的巨大影响。我们在平常的程序设计中,应该培养自己良好的程序设计习惯,尽量采用优秀的算法来实现我们需要的功能。这样将会对程序设计带来极好的结果。
参考资料:
《c语言程序设计谭浩强第三版》清华大学出版社
《数据结构教程第三版》李春葆等著清华大学出版社
《算法设计与分析第二版》吕国英主编清华大学出版社出版
《计算机算法设计与分析第三版》王晓东编著电子工业出版社
/view/9900.htm数据结构有关内容
/view/2586007.htm算法设计有关内容