数据结构和算法有什么关系?数据结构就是算法吗?

如题所述

数据结构是数据间的有机关系,算法是对数据的操作步骤。这两个概念间的逻辑关系贯穿了整个程序世界,首先二者表现为不可分割的关系。没有数据间的有机关系,程序根本无法设计,例如,设计a+b的程序,你总得找到a和b的值吧,a和b必须是可以互相找到的才能进行程序运算,a和b就必然要联结成一定的关系,或是线性关系,或是树型关系,或者是图型关系,你的程序才能产生,杂乱无章的数据-------就是没有数据结构的数据,是没有算法的,你试试做一个电子运动的时间和坐标对应的算法看看行不行,显然不行。因为有了数据结构,算法才能诞生。反过来,算法又是数据结构得以维持的一个条件,没有算法,数据根本无法有规律的打交道,也就是说数据的间只会是杂乱无章地碰撞,这样数据结构就会消灭。算法是绝对运动的,数据结构是相对静止的,二者是不可分割的关系。数据结构和算法不仅仅是计算机中才有的,计算机是后来诞生的东西,计算机的概念来源于自然界,自然界中例如一棵树的根和树叶之间的信息交流就是一个算法,是建立在根数据和树叶数据之间可以相通的关系上的算法,计算机只是自然界的一个模拟,编程语言不是程序的一个要素,因为自然界是没有语言的,但是有程序,这是唯物主义的观点。

算法是活泼的,数据结构是迟钝的,算法的发展要求数据结构跟着发展,否则就会阻碍算法的发展,算法的发展或迟或早必然冲破数据结构的束缚,二者必然将建立在一个新的起点继续着矛盾运动,

数据结构是相对静止的,算法是绝对运动的,这二者首先表现为不可分割的关系。没有一定组织关系的数据,算法就无法产生,你不可能对一堆杂乱无章的数据编写算法,你要想对数据进行操作,必须能够找到数据,这样就必须将它们按照一定规律组织起来-----这个过程不一定是算法,但是算法可以实现这个过程,数据结构是算法得以诞生的条件-----否则就是数据间的杂乱无章的运动,但是运动并不是算法。反过来算法是数据结构得以维持的条件,没有了算法对数据进行操作,数据就不会有规律地进行交互,数据结构也就随之消灭。客观世界是物质的,物质是运动的,运动是有规律的,有规律的运动就是程序,客观世界是存在程序的,所以不用担心没有算法世界会怎么样,如果没有规律的运动,就不会有人。
算法的革命的、活泼的,数据结构是反动的、迟钝的,算法的发展必然推动数据结构的发展,简单的数据结构不可能适应复杂的算法,只有提供多种复合的数据结构才能为复杂的算法提供新的空间,算法的发展必然会冲破数据结构的束缚-----不过不要忘记了这种物的规律是由人来实现的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-09-06

首先你要弄清楚数据结构是什么?数据结构呢其实就是一种存储数据之间的逻辑结构:比如我们学过的线性结构:顺序表啦,链表啦;层次结构:树啦。合适的数据结构可以带来更高的运行效率和存储效率,与相应解决实际问题算法的适应性也就越高,这也就是为什么一些算法指定了数据存储必须以某种特定的数据结才行。一般都是根据合适的数据结构来设计算法,而不是根据算法来设计数据结构。


算法和数据结构往往是互不分开的。离开了算法,数据结构就显得毫无意义,而没有了数据结构算法就没有实现的条件。良好的数据结构思想就是一种高效的算法,但是数据结构不等于算法。只有当数据结构用于处理某个特定问题类型的时候,数据结构才会体现为算法。要想细致的了解,就要多看书,因为这东西毕竟发展了那么多年,一两句话是说不清楚的。想知道更多的数据结构与算法知识吗?可以去了解一下小码哥李明杰。

第2个回答  推荐于2017-11-24
它们可以相互区别也可以相互统一。广义上讲,算法是某一系列运算步 骤,它表达解决某一类计算问题的一般方法,对这类方法的任何一个输入,它可以按步骤一步一步计算,最终产生一个输出。但是对于所有的计算问题,都离不开要 计算的对象或者要处理的信息,而如何高效的把它们组织起来,就是数据结构关心的问题,所以算法是离不开数据结构的。单讲数据结构,它指数据的组织结构,它 有逻辑结构和物理结构,另外还包括一些定义在某种数据结构上的算法,它只限于某一特定数据结构中使用,可以认为它是数据结构的组成部分,比如栈的压栈操 作,这些算法虽小但很重要,可以看成是它们决定了数据结构的外部特性,比如同样是堆,有二叉堆,二项式堆,它们除了内部结构的不同,最大的还是外部操作的 算法性能不同,也决定了它们本质上的不同,如果外部性能一样,那研究将是毫无意义的。总之,不能脱离算法讨论数据结构,也不能脱离数据结构研究算法。本回答被提问者采纳
第3个回答  推荐于2018-12-09
著名数据专家沃斯曾说:算法+数据结构=程序
你说他们一样吗?不一样
数据结构是按照逻辑关系组织起来的一批数据,按期存储结构把他存储在计算机中,并在这些数据上定义一个运算的集合。(简单说就是先在稿纸上画出这个数据怎么组织起来,这是逻辑关系,然后在计算机中怎么存储,是按顺序存,还是加个指针索引的存,这是存储结构,最后还要定义一些运算,就是这个数据能完成那些操作)
比如int a,b 就是 定义了int存储2个字节, 运算的集合,运算只能完成+ - * /
而算法是一个实现方法的步骤,这是第二步需要完成的,是具体实现的
我举个栗子
国家要制定2019年接下来的五年计划,先在稿纸上写下我的制定计划需要那些数据(大学生人数比,工人就业率,出生率,国家GDP,居民基尼系数,工业产值,负债),数据是什么关系,比如按网的形式连接起来(在计算机中就是“图型”,计算机逻辑结构还有线性表、树),我们先把收集的数据按一定方式存放到档案室(要不然大家不好找)供大家一起研习(这是存储结构,计算机存储结构又分为链式存储、顺序存储等等),还有我们能使用哪些方式,金融,高铁、飞机、坦克大炮、科技(这就是我们定义的运算,我们可以使用的方式)。
这样第一步就完成了,也就是数据结构的部分,完成了
第二步,大家通过看这些数据和我们能使用的方法,开始集思广益,我们该怎么做,先要干什么,在干什么,如果这个目标没达到,就需要想别的方法,然后一套方案就完成了(这就是算法)本回答被网友采纳
第4个回答  2019-04-11
算法+数据结构=程序,数据结构,内容包括数数组、链表、堆栈、队列等。
一个优秀的软件开发师需要数据结构可以很高效的处理复杂的问题。 因为移动互联网本身就决定了数据的重要程度。 所以数据结构算法真的很重要, 尤其是搞大数据处理的时候。
数据结构与算法它们可以相互区别也可以相互统一。数据结构是数据间的有机关系,算法是对数据的操作步骤。