关于计算机科学中数据结构算法研究

2018-06-07 08:59邓术平
科教导刊·电子版 2018年7期
关键词:数据结构复杂性算法

邓术平

摘 要 计算机的数据通过数据结构进行整理和整合,在计算机科学中,数据结构的算法与数据结构有着天然的联系。本文论述了数据结构算法的特征,总结了若干种常用的计算机数据结构算法,介绍了计算机算法的设计原则,并对算法的设计进行了研究,希望能够为计算机数据结构算法方向的研究提供一定的借鉴。计算机数据结构的算法问题是关系到数据结构的基础问题,对数据结构进行深入的讨论也有助于今后的学习和探讨。

关键词 数据结构 算法 复杂性

中图分类号:TP311 文献标识码:A

计算机算法和计算机数据结构是计算机科学的重要研究领域和基础性研究内容。计算机的科学计算和试验模拟需要依靠计算机算法和数据结构。对计算机数据结构进行深入研究可以完善数据结构,为计算机数据结构的开发提供理论借鉴和实践指导。如果积极的进行计算机数据结构和数据复杂程度的讨论,可以保证计算机数据结构计算的精度和速度,提升编程的实际操作能力。运用计算机对数据进行处理,让数据得到规整和计算操作,是计算机算法所研究的对象,在运用计算机处理数据的过程中,会运用到数学符号、逻辑符号和数据信息传递符号等处理信息的表示方式,对数据指令进行集中描述会使得计算和处理信息的流程发生改变,运用常用的数据处理方法基本上能够解决日常问题。尽管指令和数据都是有限的,但是通过算法的处理,将数据按照所编译的程序进行运算,将会得到合理的结果。

1计算机算法和数据结构概述

1.1数据结构算法的特征和内容

数据结构的算法是指计算机处理数据信息,进行数据计算和相关操作,以及对最终的处理结果进行描述操作的过程。通常涉及到数学计算、信息传递、逻辑符号和信息对比四个主要计算操作模式。对数据信息的相关指令进行描述会涉及到算法流程图。当前,通过不同的符号或文字表述不同的算法结构,不同的符号和文字具有不同的意义,常用的几种符号形式有C语言程序、常规文字符号、PAD流程图和NS流程图等。常规性文字符号和C语言是对数据结构算法进行的最直接表达,PAD流程图和NS流程图则涉及到图形。设计者通过流程图对算法的编译工作进行描述,可以清晰的帮助算法的学习者进行领会。

与数据结构算法相关的指令是有限的,算法可以对数据相关的问题进行有效处理,在算法之中,编译完成的指令可以按照顺序计算,得出最终结果。指令的个数必须满足特定的数量,指令所要表达的思想也必须是明确的,一条指令只能表达一个意思,不能表达多个意思。数据结构算法所表示的含义必须满足计算机能力的要求,如果指令的数量过多或者后续计算无法完成,则必须重新考虑指令的完整性和合理性。尽管数据算法的数据特征是有限的,但是能够对计算机数据进行有效计算,得出确切结果,数据指令的个数是有限的,如果想让指令的意思获得准确表达,就不能出现一条指令表达多种意思的效果。同时如果数据结构的算法包含了过多的指令,则之后的计算问题无法完成,因此需要保证计算的完整性和合理性。

1.2常用的几种数据算法结构

计算机算法可以将平时不够清晰,无逻辑的抽象形态,转换为数据和图形的可视结构。但是数据如何计算,结论如何得出,数据结构的思路是什么,则是我们需要详加讨论的。我们经常使用的数据有递推、迭代、枚举和递归等方法。计算机算法所要展示的是原本无规律的事物,将无规律变为有规律需要进行逻辑分析,进行分析之后所展示的结果就是数据结构,通过观察算法和数据结构,可以基本总结出数据得出的思路,得知计算机的计算过程和设计步骤。本文所详细论述的数据结构的具体算法主要包括了递推和递归以及枚举法和迭代法等,这些方法都是数据结构的常见算法,在实际过程中得到了广泛应用。

递归法和递推法是我们经常使用的方法,通过逐级推倒得出最终结果。在结果的得出过程之中,可以利用数学公式进行推倒,问题的细分也是通过数学公式。将问题细分之后,通过枝节的分析得出具有普遍特性的特征,既是得出通项。将复杂的内容简单化是递推法最重要的特点,数列的建立是得出递推法的关键,将数据带入数列之中,检验数据的真实性,递推法的总体思路就是一种实验的方法。在工程当中,经常运用到递推数列的方法进行求解,运用直接或间接的递推法都可以将复杂的问题简单化。将复杂的问题简单化是递推法的出发点。运用递推法可以逐步得到想要的结果,运用推倒公式将复杂的问题简单化,逐步细分问题,可以得出所要讨论问题的公共属性,得到问题的普遍解决办法。将简单到复杂的过程运用到递推和递归的过程中去,是该方法通常的思路。数列的得出是一种总结性的突破,找到问题的关键之后,将数据带入到数列之中,可以检验数据的正确性。递推法的总思路就是一种实验的方法,问题解决在于回归到问题的出发点,复杂问题简单化的思路就是从问题的出发点去解决,找到问题的根源。

迭代法主要运用在复杂的问题之中,如果问题比较繁琐或枝节较多,多采用移花接木的方法,将复杂的问题划分成不同的算法进行求解,将繁琐的问题划分成数个稍简单的问题。虽然迭代法的计算精度和计算难度不如递推法,计算的时间也比递归法要短,但是应对理论复杂但计算精度要求不高的项目,依然非常有效。如果问题比较复杂,则通常选用迭代法是合适的。迭代法采用的办法是将繁琐的问题拆解成几个简单的问题,迭代法牺牲了计算的精确度,为了获得较短时间的效果,计算的准确性不如递推法高,但是应对理论不复杂的问题,适用迭代法却非常有效果。

枚举法所要解决的问题是,是否可行和问题结论是否正确,多个问题的组合中也可以运用枚举法。运用枚举法的思路为,先分析所要解决的项目的结构,将所有涉及到该项目的属性列举出范围,通过问题所属项目的范围分析决定采用何种枚举方法,可以选择按顺序枚举、逐一枚举和按照类型枚举的方法。确认枚举的类型之后,就可以检测数据的真实性和可理解性。当计算出正确的方案之后,為了方便工作人员的理解,防止出现计算误区,还需要再次检测。但是,算法的缺陷也是不可弥补的,由于枚举法本身所具有的不足,在使用枚举法已经选取了之前的两种方案之后还仍旧没有结论的情形下,才会使用枚举法。因此尽管采用了枚举法,也还是有可能得不到最终想要的结果。枚举法的精度问题一直是枚举法的弱点。

2计算机数据结构的算法设计原则

计算机数据结构的算法计算需要满足一定的条件,符合一定的原则,要求才可能得到正确处理。在通常情形下,计算机算法设计当中,需要考虑多方面的问题,数据结构算法的计算工作也分不同步骤进行。计算机数据结构的算法知识当中的原则性知识的学习,有助于更加深入的理解计算机结构的运行情况,适当开展课题对数据结构的理论原则问题进行探讨,有助于优化数据结构,降低数据结构的复杂性,从而提升数据运转的效率。

2.1算法需要满足正确性原则

算法是编程的核心问题,只有算法正确程序才能正常运转,因此算法必须保证正确性,解决了正确性问题,在编程的过程中才能结合实际需要,运用合理的算法,进行科学计算。如果算法的选择不是唯一的,则要尽可能的确认一种正确的算法,因为算法带有唯一的属性。算法问题关系到编程的效果是否良好,只有算法能达到正确的要求,才能保证程序的运行不出差错,在实际程序设计的过程中,算法的设计在满足正确性的前提下,需要根据实际需要设置合理的算法,保证算法设计的科学性和合理性。

2.2算法必须具备可读性原则

合适的算法选取之后,还需要满足程序中算法的可读性原则,一个算法不能仅保证正确性,还需要具备可理解性,具备可读性的算法才能够被理解,从而便于计算,给程序的使用者带来方便。算法的使用者在应用算法的时候如果走入误区,则不能更快更好的进行程序的计算,也就无法达到预计的后果。满足程序的可读性是在选择了正确的算法之后需要考虑的事项,好的算法所要满足的不单单是合理性和正确性,还需要保证理解的可行性,只有便于理解的问题才是适合解决的问题,使用者在面对不可读的数据之时容易陷入误区,一个设计不具備可读性的程序往往无法达到预期,因此为了保证良好的运行效果,需要保证程序的可读性。

2.3算法必须符合稳定性原则

在计算机程序的运算过程中,输出的结果的好坏与算法是否稳定运行相关,数据的波动性和程序运行的波动性决定了算法得出的结论是否稳定。在以往的项目实践过程中,如果遇到计算机输出的结果波动异常的情况,则一般属于反常情况,如果计算机输出的结果没有规律,则预示实际情况不相符。在改进算法之后,数据稳定性可获得提升,结果也将是预想到的结果。因此,对计算机的数据结构进行运行稳定性分析后,可以实现尽快得到合适结果的目的。要想尽快得到合适的、有效的结论,算法的稳定性也非常关键。

2.4算法设计的高效能低消耗原则

现代社会提倡高效低耗节能环保,需要计算机程序也满足上述原则。计算机程序法的运行要尽量缩短计算的时间,现阶段高效已经是计算机设计的原则之一,开发者都在向着节能高效的方面努力。计算机算法的高效性决定了计算机系统是否节能,运行速度快和能耗低的计算机数据结构是程序设计者追求的最终目标。

3计算机数据结构的复杂度研究

计算机程序运行时间的长短也取决于算法的复杂或简单程度,一般而言复杂的程序运行的时间较长。在现实问题的解决过程中,我们所应对的问题一般都是简单的问题,对现实当中的问题所设计出来的算法一般而言也是较为简单的算法,因为算法设计的比较简单,因此运算的实践一般而言较短。但是与工程相关的问题算法一般都比较复杂,需要花费的时间也比较多,下文针对计算机程序花费的时间和计算机的内部存储两个角度进行详细讨论。算法的复杂程度一般会影响到计算的时间,计算机内部存储性能的好坏也会影响到程序的运行。

程序的运行的时间和计算机的实际内存是影响到程序运行速度的关键因素。一般而言,如果计算机程序可以调用的空间比较大,一般程序的运行速度会比较快,因此扩大内存是提升程序运行速度的一种方法。同时其他环境因素也有可能影响到计算机程序的运行速度,但是其他环境因素的影响都是次要的方面,与内存相比影响不够明显。衡量计算机程序运行的快慢和相对信息计算时间长短的问题,所用到的衡量方法一般都是客观的方法,除了需要选择一台性能高的计算机之外,还需要注意的问题就是增加计算机的内存,加大内存之后可以保证在运算相同程序的时候,所耗用的计算机内存只占了整体内存当中一个较小的部分,这样才能保证计算机运行的速度。在解决实际问题的时候,想要得到相同的计算结果,除了可以选择较为简单的计算方法之外,选择一个性能高的计算机并增大内存也是可行的方法。只有占用内存比例比较小的程序才能保证运行的时间较短,也是优先可以选择的方法。

4结论

计算机数据结构的算法问题是关系到数据结构的关键和基础,学习计算机数据结构的基础知识必须要保证数据结构知识。如果需要深入的理解计算机的运行程序,也需要打好扎实的数据结构知识的基础。在学习计算机程序设计的过程中,需要积极的学习数据算法的问题,掌握数据算法结构,学习数据结构的优化方法,掌握降低数据算法复杂度的方法,对于计算机数据处理当中具有重要价值和实际意义的算法问题,也需要进行更加深入的研究。

参考文献

[1] 甄鹏华,于振梅.计算机科学中的算法设计与数据结构的离散性[J].微型机与应用,2016,35(22):18-21.

[2] 崔彩霞,菅小艳,庞天杰.地方高校计算机类专业“算法与数据结构”实践教学改革[J].计算机教育,2016(07):52-54.

[3] 张乃孝.“数据结构”教学与教材研究[J].中国大学教学,2013(02):86-90.

[4] 张丽萍,刘东升,王春晖.计算机应用型人才培养与数据结构课程改革[J].计算机教育,2010(05):21-23.

[5] 李汪根,丁永生.DNA计算机中队列数据结构的设计及实现[J].计算机学报,2007(06):993-998.

猜你喜欢
数据结构复杂性算法
PFNA与DHS治疗股骨近端复杂性骨折的效果对比
简单性与复杂性的统一
基于MapReduce的改进Eclat算法
Travellng thg World Full—time for Rree
进位加法的两种算法
应充分考虑医院管理的复杂性
“翻转课堂”教学模式的探讨——以《数据结构》课程教学为例
一种改进的整周模糊度去相关算法
直肠腔内超声和MRI在复杂性肛瘘诊断中的对比分析
TRIZ理论在“数据结构”多媒体教学中的应用