浅谈数据结构及算法之间的关系

来源 :数字化用户 | 被引量 : 0次 | 上传用户:lastdemon
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘 要】《数据结构》是计算机专业的一门核心课程。计算机科学和应用领域,广泛地使用着各种数据的集合。这些集合中的数据不是孤立的,而是有着内在的联系。学好数据结构,也是为学习“操作系统”、“编译原理”、“数据库系统原理”、“人工智能”等后续课程提供必要的知识准备。很多初学者在学习《数据结构》时,往往感到数据结构很抽象,往往把数据结构、算法相混,甚至把数据结构误认为是程序设计语言。文章主要是谈谈数据结构及算法之间的关系。
  【关键词】数据结构算法程序程序设计
  很多初学者在学习《数据结构》这门课时,往往感到比较抽象,比较难懂。常常把数据结构、算法和程序设计语言相混。那么什么是数据结构呢?数据结构、算法和程序设计之间又有哪些区别与联系呢?
  一、数据结构
  数据结构是一门研究非数值计算的程序设计问题中计算机操作对象以及它们之间关系和操作的学科。
  (一)概念与术语:
  数据(data)—所有能输入到计算机中去的描述客观事物的符号。
  数据元素(data element)—数据的基本单位,也称节点(node)或记录(record)。
  数据项(data item)—有独立含义的数据最小单位,也称域(field)。
  数据结构(data structure)—数据元素和数据元素关系的集合。
  (二)数据结构相关三个问题
  1.数据的逻辑结构:反映数据之间的逻辑关系。
  三种基本结构:
  线性结构:结构中的数据元素存在着线性(一对一)的关系。
  树形结构:结构中的数据元素存在着层次(一对多)的关系。
  图形结构:结构中的数据元素存在着任意(多对多)的关系。
  2.任何数据结构在逻辑上可描述为 Group=(D,R)
  其中:D是数据元素的集合, R是D上的关系集合。
  数据的存储结构:数据在计算机内部的存储方式。
  数据的操作:数据的操作即是对数据进行的处理。
  3.高标准的数据结构能使运行效果及储存效率更高,数据结构运行快与慢主要与检索算法和索引技术效率高低相关。在各式各样的计算机程序的设计中,选择设计什么样的数据结构是一个最基本的考虑因素。经过工作人员及系统操作人员大量实践证明,一个计算机系统完成质量好与坏,最终取决于最初数据结构定位的高低,使用一个优质的数据结构,在系统后期运算及使用中都会有一个良好的运行环境。所以不管是在做系统时定先定位数据结构,根据特定算法来选择相适用的数据结构。数据结构在整个环节都是非常重要的。
  二、算法
  (一)用计算机制作一个操作程序时,需要经过以下几个步骤:
  1.从程序目标中抽象一个合适的数学模型
  2.设计计算分解数学模型的算法
  3.编辑系统程序、进行测试、并最终调整至适配过关。
  分析问题是数学模型的实质,从不断的分析问题中提取操作的对象,找出这些操作对象之间的操作关系,最后用数学语言进行表述与计算。
  (二)算法是由基本运算及规定的运算顺序所构成的完整的解题步骤。计算机算法与数据结构之间的關系,算法最终依附于数据结构,数据结构直接影响算法的选择和运行效率。运算是计算机完成的,这就要设计计算机在操作时对相的一些操作模式,如插入、删除和修改的算法 。也就是说,数据结构还需要给出每种结构类型所定义的各种运算的算法。
  (三)算法的设计最终取决于数据(逻辑)结构,而算法的实现依赖于采用的存储结构。数据的运算是在数据的逻辑结构上定义的操作算法,如检索、插入、删除、更新的排序等。算法是指:利用编程语言功能解决实际问题的方法,也可以理解为组织编程语句的方法,是逻辑概念。算法是一系列解决问题的指令,如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。算法可以理解为由基本运算及规定的运算顺序所构成的完整的解题步骤。
  (四)算法与数据结构研究的目的简单地说就是优化代码,提高程序执行效率。打个比方:把一堆无顺的数据通过一个算法实现顺序排列实现方法太多太多, 但是也许运行速率最快的占用的存储空间很大也许运行速率不是很快的占用的存储空间却很小, 所以要通过算法与数据结构分析。
  (五)算法就是一个处理的方法,比如排序算法,就是为了完成对一组数据排序。查找算法,就是为了在一个集合中查找需要的项。除此之外,还有很多算法,比方说,加密、压缩、图像处理。而数据结构就是数据的结构。比方说队列、堆、栈、链表、树等等。
  三、结束语
  所有的算法必须基于数据结构生存。也就是说,我们对于任何算法的编写,必须依赖一个已经存在的数据结构来对它进行操作,数据结构成为算法的操作对象,这也是为什么算法和数据结构两门分类不分家的概念,算法在没有数据结构的情况下,没有任何存在的意义;而数据结构没有算法就等于是一个尸体而没有灵魂。总之,数据结构、算法和程序之间的关系,就是“数据结构+算法=程序设计”。
  参考文献:
  [1]许卓群,张乃考,杨科清,唐世渭《数据结构》高等教育出版社 1987
  [2]严蔚敏,吴伟民《数据结构》清华大学出版社 1992
  [3]徐绪松《数据结构与算法》武汉大学出版社 1987
  [4]曹新谱《算法设计与分析》湖南科学技术出版社 1984
  作者简介:
  时华德 (1972—)男,江西九江人,现任职于九江市技工学校。
其他文献
【摘 要】随着计算机信息技术的普及和运用,各大高校不仅开设了计算机专业,而且也把计算机作为公共课程进行教学,然而计算机课程开设的必要性和重要性也给计算机实验室管理带来了相应的问题。高校计算机实验室的管理与维护并不是管理者单向的行为,而是学校整体作为的结果,本文将从学校的规章制度、教师和学生的素质等方面进行探讨。  【关键词】高校 计算机 实验室 管理 维护  计算机信息技术引领着时代发展的方向,现
网页设计导航是一个非常重要的部分,它是网站的访问者得到快速跟踪所需的内容和手段。导航到一个明确的和有组织的方式显示的网站层次结构,并引导用户毫不费力地查找和管理信息,实现有效交付。视觉中心,使导航一般位于网页的上部区域内。在符合理性的功能,它的作用,而一个良好的导航设计,往往是整个网页设计的点睛之笔!  有许多网站缺乏针对性,友好的导航设计,有时候非常难才能找到的路径,连接到的页面,甚至还不能提供
目的 构建、鉴定携带人降钙素基因相关肽α(hCGRPα)的重组逆转录病毒载体pLNCX2-hCGRPα.方法 采用基因工程技术,双酶切消化后回收438 bp的hCGRPα cDNA片段和6.1kb的pLNCX2载体片段,纯化后按摩尔比7∶1混合,将降钙素基因相关肽基因片段克隆至逆转录病毒载体pLNCX2上,序列测定、对比.鉴定后用脂质体法转染PT67细胞进行病毒包装扩增,感染NIH3T3细胞,观察
【摘 要】随着信息技术的普及,经济、社会的发展对计算机产生了很强的依赖性。对于企业而言,企业开始重视信息技术的发展情况,借助计算机管理,提高企业的经济效益。近几年来,企业的发展更加信息化,在一定程度上增强了企业的竞争力。文章将先对提高计算机信息管理能力的必要性进行分析,接着分析计算机信息管理存在的问题,最后提出提高计算机信息管理能力的办法。  【关键词】计算机信息管理能力 必要性 现状  现代社会
【摘 要】云计算是一种新型的计算模式,在互联网技术上的基础上,可以通过动态可伸缩的虚拟化资源来进行计算。这种计算方式大大地提高了服务器、终端等设备的工作效率,因此广泛地应用于各行各业当中。例如在科研领域中可以通过云计算来进行地震监测、环境监控;在网络安全工作中可以通过云计算来进行数据信息储存;在医学研究中,云计算可以对DNA数据库进行相应的分析、整合等等。本文对基于云计算的计算机实验室进行了综合性
该文从挂篮荷载计算、施工流程、支座及临时固结施工、挂篮安装及试验、合拢段施工、模板制作安装、钢筋安装、混凝土的浇筑及养生、测量监控等方面人手,介绍了S226海滨大桥
该文从挂篮荷载计算、施工流程、支座及临时固结施工、挂篮安装及试验、合拢段施工、模板制作安装、钢筋安装、混凝土的浇筑及养生、测量监控等方面人手,介绍了S226海滨大桥
【摘 要】数据采集转换是使用AO进行审计分析的前提和重要环节,采集转换中的异常处理是这个环节的关键技术。本文总结了使用排除法处理用友GRP R9数据导入AO出现科目期末余额为负值的异常。本方法对其他财务核算软件数据导入AO时,出现类似错误的处理和纠错也具有借鉴和推广价值。  【关键词】排除法 导入 期末余额 负值  数据采集转换是使用AO进行审计分析的前提和重要环节,采集中的出错处理和异常纠错对不
目的观察核因子κB(NF-κB)非经典信号通路在糖尿病及非糖尿病冠状动脉旁路移植术(CABG)患者桡动脉中的表达及定位。方法收集2013年6月至2014年12月20例糖尿病及20例非糖尿病CABG患者的桡动脉,HE染色比较两组桡动脉管壁形态,免疫组化染色比较NF-κB非经典信号通路关键因子[核因子κB抑制蛋白激酶α(IKKα)、P52、relB、白细胞介素-10(IL-10)]在两组患者桡动脉中的
目的观察微炎症致脂质稳态失调在载脂蛋白E基因敲除(apolipoprotein E knockout, ApoE-/-)小鼠心肌纤维化中的作用,并探讨内皮-间充质转化(endothelial-mesenchymal transition,End-MT)在其中的作用机制。方法24只ApoE-/-小鼠分为对照组(普通饮食,n=8),高脂组(高脂饮食,n=8)和高脂炎症组(高脂饮食,且每日背部皮下注射1