欢迎来到天天文库
浏览记录
ID:25918570
大小:163.00 KB
页数:29页
时间:2018-11-23
《算法合集之《数据结构的在程序设计中的应用》》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据本资料由-大学生创业
2、创业
3、创业网http://www.chuangyw.com/提供资料数据结构的在程序设计中的应用长沙市一中肖洲【关键字】逻辑结构存储结构算法优化【摘要】数据结构作为程序设计的基础,其对算法效率的影响必然是不可忽视的。本文就如何合理选择数据结构来优化算法这一问题,对选择数据结构的原则和方法进行了一些探讨。首先对数据逻辑结构的重要性进行了分析,提出了选择逻辑结构的两个基本原则;接着又比较了顺序和链式两种存储结构的优点和缺点,并讨论了选择数据存储结构的方法;最后本文从选择数据结构的的另一角度出发,进一步探讨了如何将多种数据结构进行结合
4、的方法。在讨论方法的同时,本文还结合实际,选用了一些较具有代表性的信息学竞赛试题举例进行了分析【正文】一、引论“数据结构+算法=程序”,这就说明程序设计的实质就是对确定的问题选择一种合适的数据结构,加上设计一种好的算法。由此可见,数据结构在程序设计中有着十分重要的地位。数据结构是相互之间存在一种或多种特定关系的数据元素的集合。因为这其中的“关系”,指的是数据元素之间的逻辑关系,因此数据结构又称为数据的逻辑结构在线代理
5、网页代理
6、代理网页
7、http://www.dailiav.com减肥药排行榜
8、淘宝最好的减肥药
9、什么减肥药效果最好
10、减肥瘦身药
11、http:
12、//pigproxy.cn数据本资料由-大学生创业
13、创业
14、创业网http://www.chuangyw.com/提供资料。而相对于逻辑结构这个比较抽象的概念,我们将数据结构在计算机中的表示又称为数据的存储结构。建立问题的数学模型,进而设计问题的算法,直至编出程序并进行调试通过,这就是我们解决信息学问题的一般步骤。我们要建立问题的数学模型,必须首先找出问题中各对象之间的关系,也就是确定所使用的逻辑结构;同时,设计算法和程序实现的过程,必须确定如何实现对各个对象的操作,而操作的方法是决定于数据所采用的存储结构的。因此,数据逻辑结构和存储结构的好坏,将直接影响
15、到程序的效率。二、选择合理的逻辑结构在程序设计中,逻辑结构的选用就是要分析题目中的数据元素之间的关系,并根据这些特定关系来选用合适的逻辑结构以实现对问题的数学描述,进一步解决问题。逻辑结构实际上是用数学的方法来描述问题中所涉及的操作对象及对象之间的关系,将操作对象抽象为数学元素,将对象之间的复杂关系用数学语言描述出来。根据数据元素之间关系的不同特性,通常有以下四种基本逻辑结构:集合、线性结构、树形结构、图状(网状)结构。这四种结构中,除了集合中的数据元素之间只有“同属于一个集合”的关系外,其它三种结构数据元素之间分别为“一对一”、“一对多”、“多对多”的
16、关系。因此,在选择逻辑结构之前,我们应首先把题目中的操作对象和对象之间的关系分析清楚,然后再根据这些关系的特点来合理的选用逻辑结构。尤其是在某些复杂的问题中,数据之间的关系相当复杂,且选用不同逻辑结构都可以解决这一问题,但选用不同逻辑结构实现的算法效率大不一样。对于这一类问题,我们应采用怎样的标准对逻辑结构进行选择呢?下文将探讨选择合理逻辑结构应充分考虑的两个因素。一、充分利用“可直接使用”的信息。首先,我们这里所讲的“信息”,指的是元素与元素之间的关系。对于待处理的信息,大致可分为“可直接使用”和“不可直接使用”两类。对于“可直接使用”的信息,我们使用
17、时十分方便,只需直接拿来就可以了。而对于“不可直接使用”的这一类,我们也可以通过某些间接的方式,使之成为可以使用的信息,但其中转化的过程显然是比较浪费时间的。在线代理
18、网页代理
19、代理网页
20、http://www.dailiav.com减肥药排行榜
21、淘宝最好的减肥药
22、什么减肥药效果最好
23、减肥瘦身药
24、http://pigproxy.cn数据本资料由-大学生创业
25、创业
26、创业网http://www.chuangyw.com/提供资料由此可见,我们所需要的是尽量多的“可直接使用”的信息。这样的信息越多,算法的效率就会越高。对于不同的逻辑结构,其包含的信息是不同的,算
27、法对信息的利用也会出现不同的复杂程度。因此,要使算法能够充分利用“可直接使用”的信息,而避免算法在信息由“不可直接使用”向“可直接使用”的转化过程中浪费过多的时间,我们必然需要采用一种合理的逻辑结构,使其包含更多“可直接使用”的信息。〖问题一〗IOI99的《隐藏的码字》。〖问题描述〗问题中给出了一些码字和一个文本,要求编程找出文本中包含这些码字的所有项目,并将找出的项目组成一个最优的“答案”,使得答案中各项目所包含的码字长度总和最大。每一个项目包括一个码字,以及该码字在文本中的一个覆盖序列(如’abcadc’就是码字’abac’的一个覆盖序列),并且覆盖
28、序列的长度不超过1000。同时,“答案”要求其中每个项目的覆盖序列互相没有重叠。
此文档下载收益归作者所有