- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构与算法设计的关系
摘要: 随着计算机的发展,软件的强大与否越来越重要。一个“好”的程序就是选择一个合理的数据结构和好的算法,要想编写出好的程序,研究数据结构和算法至关重要。本文将从数据结构研究内容和算法设计研究内容出发,举例探究二者之间关系。
关键字:数据结构 算法设计 存储 复杂度
正文:
一、数据结构研究的内容
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。
数据结构是指数据以及相互之间的关系,可以看做是相互之间存在着某种特定的关系的数据元素的集合,因此,可以把数据结构看成是带结构的数据元素的集合,数据结构包括以下几个方面,同时也是数据结构要研究的内容。
数据元素之间的逻辑关系,即数据的逻辑结构,数据的逻辑结构师从逻辑关系(主要是相邻关系)上描述数据的,它与数据的存储无关,是独立于计算机的,因此数据的逻辑结构可以看做是从具体问题抽象出来的数学模型;
数据元素及其关系在计算机存储器中的存储方式,即数据的存储结构,也称为数据的物理结构,数据的存储结构师逻辑结构用计算机语言的实现或在计算机中的表示(亦成文映象),也就是逻辑结构在计算机中的存储方式,也是依赖于计算机语言的;
施加在该数据上的操作,即数据的运算,数据运算时定义在数据的逻辑结构上的,每种逻辑结构都有一种相应的运算。
以上是数据结构的包括的内容,也是数据结构研究的内容,其中每个方面又包括许多小的方面,逻辑结构包括集合,线性结构,树形结构,图形结构等,存储结构包括顺序存储结构,链式存储结构,索性存储结构,哈希(或散列)存储结构。
当然,在我们大学期间,不能感受到数据结构研究内容的深刻,但是数据结构研究的内容非常广,而却有着非常重要的意义。
二,算法设计研究的内容
大学大一大二以来的编程,给我的感觉就是算法就是函数、方法,通俗来说就是解决问题的办法或者途径。算法是什么?算法是指在解决问题时,按照某种机械步骤一定可以得到问题结果的处理过程。当面临某个问题时,需要找到用计算机解决这个问题的方法和步骤,算法是解决这个问题的方法和步骤的描述。
算法是计算机学科中最具有方法论性质的核心概念,被誉为计算机学科的灵魂。算法由操作,控制结构,数据结构3要素组成。算法的基本特征包括又穷性,确定性,可行性。以上是算法的一些基本特征,那么算法设计研究的内容是什么了,算法设计研究的内容包括以下几个方面。
算法实现平台有很多种类,它们的函数库,类库也有较大差异,但必须具备的最基本操作功能是相同的,操作包括:算术运算,关系比较,逻辑运算,数据传送。
一个算法功能的实现不仅取决于所选用的操作,还取决于各操作之间的执行顺序,即控制结构,算法的控制结构给出了算法的框架,决定了各操作的执行顺序。
算法操作的对象是数据,数据间的逻辑关系,数据的存储方式以及处理方式就是数据的数据结构。
以上就是算法设计研究的内容,我是从算法的3要素来看算法设计研究的内容的。算法设计研究的内容也非常广,我们不能单凭我们大学学的知识去看算法设计的研究,我们学的只是九牛一毛,所以需要我们去多阅读一些关于算法研究方面的书籍。
三,两者之间的联系与区别
在介绍数据结构研究的内容的时候,就提到了两者之间的关系,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。由此可见数据结构和算法设计密不可分,好的数据结构也需要好的算法设计才能实现。
在介绍算法设计研究内容的时候,我们可以知道算法操作的对象是数据,数据间的逻辑结构,数据的存储方式,简而言之,算法操作的对象是数据结构。由此可见,数据结构也是算法设计研究的一方面,说明两者有着密不可分的关系。
但是两者也有着不同的地方,数据结构重在研究数据以及数据之间的关系,不会着重于其实现的过程,但是算法设计不仅要考虑到数据之间的关系,也要分析实现的过程,并要分析最优的算法实现,以及算法效率,空间利用率。
四,举例说明
比如:问题1、词法分析器,要求识别出标示符和变量,变量需要有相应的数据类型属性,返回值均为数字;
对于识别,我们可以简单的对取到的字符或字符串进行判断,如果是标点符号,输出;空格不管;括号、分号,输出;数字,转化为2进制,输出;字符,存入数组继续读;字符串,识别为变量或标示符,输出。
字符串识别这个问题我们会首先想到,用读文件指针获取内容,如果是字符的话往下读取,将读取的存入一个数组,字符串读取完成之后与标示符对比,相同则为标示符,不同则为变量;此处便涉及到标识符的存储以及变量的储存,以便下一次遇到变量能识别为相同的变量。
于是,标示符和变量可以简单的用结构体链表存储,标示符含三个成员标示符的数字标识和标示符内容、指针;变量可结构体含四个成员,一个是变量名,一个是变量类型,第三个为变量数
文档评论(0)