数据结构、算法和程序之间关系分析

2017-10-22 18:59范玉红
中国新通信 2017年18期
关键词:数据结构程序算法

范玉红

【摘要】 在电子计算机技术中,数据结构是将其与信息连接在一起的一个重要部分,也是很多从事电子科技研究人员进行学习所必须掌握的一门基础性课程。在实际教学中,多数学生对于数据结构、算法以及程序之间的关系并不很了解,在国内的相关教材上的讲解也不深入,导致学生对其关系较为困惑。本文基于对数据结构、算法和程序之间的关系进行一定的了解,就实现算法设计和算法实现这两个方面的讲解对数据结构、算法和程序之间的关系进行分析。

【关键词】 数据结构 算法 程序

一、数据结构的研究内容

1、数据结构的概念。随着软件技术的发展,数据结构与算法已经成为软件开发工程师必备的程序设计是数据结构的基础和实现方法。数据是人们将文字符号、数字符号和其他规定符号表述为现实中发生的事情和产生的活动的一种描述。在生活中,我们所使用的文字和数字来表示我们的世界,例如商品的价格会用货币数量来表示。在计算机的世界里,数据就扮演了这个角色,将数据输入到电脑中,电脑就能自动的识别信息,完成工作。数据结构相对于数据来说是表述数据之间的关系的一种集合,数据结构完全可以只讲数据的存储方法和算法的逻辑逻辑过程,可以不涉及具体实现过程,在实现一种数据的存储和一个算法的求解过程时。数据结构在应用中,可以选择应用不同的程序设计语言来达到目的,同一个算法,既可以使用VB实现,也可以选择C、C++、JAVA、或者C#来实现,而在选定某一工具来实现算法时,程序设计的具体指令和方法是由所选择的程序设计语言的语法决定。

2、数据结构的分類。在进行数据结构研究时,一般来说包括下面的几个部分:1)数据元素间的逻辑关系;2)数据元素的储存关系;3)数据元素的储存方式;4)数据结构上的运算方法。在数据结构中,较为常见的结构有集合、线性结构、树形结构、图形结构几种,常见的数据储存结构有顺序存储结构、索引存储结构等等。

二、算法分析

1、算法的意义。算法是研究实际问题中按照一定的编写步骤得到结果的过程,一般来说分为有解和无解两种结果形式,算法在计算机技术中占有重要的地位,是计算机解决问题时必不可少的过程。当我们进行某个实际问题的计算时,通过计算机进行对实际问题的解决办法、解决思路的理清,需要通过算法来进一步实现。在解决问题时,算法中包含的等待执行的命令和运算过程是解决问题的基本,计算机在进行计算时通过对算法中各步骤的要求遵循算法的计算过程和方法,计算机不需要对操作进行理解就能够实现解决问题得出相应的结果。

2、算法的构成。一般来说,算法中包含有操作、控制结构、数据结构这三个部分,算法在执行命令时经过这三部分的计算得出正确的结果。

3、算法分析。算法分析的应用是为了进行设计具体的算法,在数学工具的辅助下,算法分析对每一种算法的复杂程度、计算过程、计算结果进行一定的分析,能够在一定程度上实现分析出这种算法在实际应用中的综合能力,包括其优点和缺点的具体分析结果和解决问题的实际能力、效率。

算法分析中对算法的定义和评估一般有三个部分:1)算法进行的时间,是评估中最为重要的一部分;2)算法的存储空间大小,主要是辅助储存空间的大小;3)算法实际应用中的能力,主要是算法是否容易理解和调整。

三、算法和数据结构之间的关系

1、二者之间的联系。我们现在普遍认为,数据结构与算法之间的结合就等于程序,数据结构在一定层面上来说就相当于是算法的基础,算法要依附于数据结构进行计算,实现解决实际问题。在算法的研发中,往往先要进行数据结构的调整和搭建,以保证算法对其有充分的适应性。算法的应用对象是数据结构,数据结构在算法中是其进行整合的一部分,数据结构在进行设计时要进行存储方式的选择,例如一个问题的信息确定存储途径是数组存储或者是较为普通的变量存储,需要进行选择后才能进行算法的进一步设计。数据结构可以说是算法的基石,没有较为合理的数据结构,就无法使算法很好地应用,数据结构的不同会导致算法之间也有非常大的差异性,算法的设计可以说是不能脱离数据结构存在的。数据结构在进行设计时要充分为算法的设计进行考虑,不能只对数据结构一方面进行设计而忽略了算法的重要性,否则数据结构就会失去它的存在价值。在进行算法设计时,工程师一般都会对较为典型的数据结构有一定的了解,在这个基础上设计师才能将二者之间紧密的联系在一起,使算法得到更好的应用。

2、数据结构与算法之间的差别。数据结构侧重点在数据的逻辑结构以及存储结构的关系是否合理上,算法的侧重点则是在数据结构的基础上进行实际问题的解决。算法较为偏重的是整体的结果和结构的统一性,而数据结构则是这些结构的主要构成部分,是完成计算的基础。

四、程序与算法之间的关系

算法是解决问题的实际步骤,要求其满足有效、有穷、确定、0个或者多个输入、1个或多个输入的特性。程序需要有专业的计算机编程人员来进行编写,需要较高的水平和技术,程序和算法之间的不同点在于程序不受约束,算法则受到有穷性约束。算法的定义的使用上对其有穷性有一定的影响,使得二者之间存在差异。

五、数据结构与算法间的关系案例

假如:现有若干学生数据,每个学生数据包括学号、姓名、班级及若干门成绩(每名学生选择的科目数可能不同,假设最多六门),要求设计一个程序输出每个学生的学号、姓名、平均分和每门课的平均分。下面我们有两种存储方案:

第一种方案是把学生的所有数据都存放在一个大的表格中,每个学生相对应的全部数据为一个记录。根据题意,每名学生假设所选的课程数不超过六门,那么所产生的成绩数也不多于六门。下面进行数据结构的编写。

Struct…stud

{

………Int…no;

………Char…name[10];

………Int…classno;

………Int…deg1;

………Int…deg2;

………Int…deg3;

…Int…deg4;

…Int…deg5;

………Int…deg6;

};

第二个方案就是把学生的所有数据都放入到一个表格中,每一名学生的一门课程对应一条记录,这样的编写出的成绩项只需要一个,我们为了将每一门课程区分开来,对每一门课程都增加了一个编号。数据结构如下。

Struct…stud

{

………Int…no;

………Char…name[10];

………Int…classno;

………Int…causeno;

………Int…deg;

};

进行分析比较发现,第一种方案相对来说可行性较大。

结束语:时代的发展催生出来的新型软件的开发离不开程序,在通过计算机进行实际问题的解决过程中,一定会对实际问题的各种信息和处理方式进行发硬,信息的表示中包含两个部分,信息的逻辑表示和信息的存储表示,这两个部分占非常重要的部分。数据结构与算法、程序之间的关系是相互依存、相互作用的,数据结构作为其基础,必须要做好相应的检查和调整,使算法和程序能够得到较好的应用。我们在进行数据结构的编写时应该注意数据选择上的合理性,通过不同的编写方法所达到的效果差异也是非常大的。在进行学习时,掌握数据结构、算法与程序间的关系和内容能够快速的提升学习水平,达到进一步的提升。

参 考 文 献

[1]…李文明,叶笑春,张洋,宋风龙,王达,唐士斌,范东睿,谢向辉.…BDSim:面向大数据应用的组件化高可配并行模拟框架[J].…计算机学报.…2015(10)…

[2]…李文杰,姜淑娟,钱俊彦,王兴亚,鞠小林.基于对象引用关系的Java程序内存行为分析方法[J].…电子学报.…2015(07)…

[3]…刘晓静,王晓英,张玉安,黄建强,刘志强.以创新人才培养为目标的数据结构实验教学改革[J].…实验技术与管理.…2014(11)endprint

猜你喜欢
数据结构程序算法
数据结构线上线下混合教学模式探讨
重典型应用,明结构关系
给Windows添加程序快速切换栏
Travellng thg World Full—time for Rree
简化化学平衡移动教学程序探索
“程序猿”的生活什么样
学习算法的“三种境界”
算法框图的补全
算法初步知识盘点
英国与欧盟正式启动“离婚”程序程序