数据结构与算法的关系,数据结构学的到底是什么?和算法有什么关系?
数据结构与算法的关系,数据结构学的到底是什么?和算法有什么关系?详细介绍
本文目录一览: 数据结构与算法的关系
数据结构与算法的关系如下:
一、指代不同。
1、算法:是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令。
2、数据结构:指相互之间存在一种或多种特定关系的数据元素的集合。
二、目的不同。
1、算法:指令描述的是一个计算,当其运行时能从一个初始状态和(可能为空的)初始输入开始,经过一系列有限而清晰定义的状态,最终产生输出并停止于一个终态。
2、数据结构:研究的是数据的逻辑结构和数据的物理结构之间的相互关系,并对这种结构定义相适应的运算,设计出相应的算法,并确保经过这些运算以后所得到的新结构仍保持原来的结构类型。
三、特点不同。
1、算法:算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步骤,即每个计算步骤都可以在有限时间内完成。
2、数据结构:核心技术是分解与抽象。通过分解可以划分出数据的3个层次;再通过抽象,舍弃数据元素的具体内容,就得到逻辑结构。
通俗说数据结构与算法有什么关系啊
数据结构和算法有什么关系?数据结构就是算法吗?
首先你要弄清楚数据结构是什么?数据结构呢其实就是一种存储数据之间的逻辑结构:比如我们学过的线性结构:顺序表啦,链表啦;层次结构:树啦。合适的数据结构可以带来更高的运行效率和存储效率,与相应解决实际问题算法的适应性也就越高,这也就是为什么一些算法指定了数据存储必须以某种特定的数据结才行。一般都是根据合适的数据结构来设计算法,而不是根据算法来设计数据结构。
算法和数据结构往往是互不分开的。离开了算法,数据结构就显得毫无意义,而没有了数据结构算法就没有实现的条件。良好的数据结构思想就是一种高效的算法,但是数据结构不等于算法。只有当数据结构用于处理某个特定问题类型的时候,数据结构才会体现为算法。要想细致的了解,就要多看书,因为这东西毕竟发展了那么多年,一两句话是说不清楚的。想知道更多的数据结构与算法知识吗?可以去了解一下小码哥李明杰。
它们可以相互区别也可以相互统一。广义上讲,算法是某一系列运算步 骤,它表达解决某一类计算问题的一般方法,对这类方法的任何一个输入,它可以按步骤一步一步计算,最终产生一个输出。但是对于所有的计算问题,都离不开要 计算的对象或者要处理的信息,而如何高效的把它们组织起来,就是数据结构关心的问题,所以算法是离不开数据结构的。单讲数据结构,它指数据的组织结构,它 有逻辑结构和物理结构,另外还包括一些定义在某种数据结构上的算法,它只限于某一特定数据结构中使用,可以认为它是数据结构的组成部分,比如栈的压栈操 作,这些算法虽小但很重要,可以看成是它们决定了数据结构的外部特性,比如同样是堆,有二叉堆,二项式堆,它们除了内部结构的不同,最大的还是外部操作的 算法性能不同,也决定了它们本质上的不同,如果外部性能一样,那研究将是毫无意义的。总之,不能脱离算法讨论数据结构,也不能脱离数据结构研究算法。
著名数据专家沃斯曾说:算法+数据结构=程序
你说他们一样吗?不一样
数据结构是按照逻辑关系组织起来的一批数据,按期存储结构把他存储在计算机中,并在这些数据上定义一个运算的集合。(简单说就是先在稿纸上画出这个数据怎么组织起来,这是逻辑关系,然后在计算机中怎么存储,是按顺序存,还是加个指针索引的存,这是存储结构,最后还要定义一些运算,就是这个数据能完成那些操作)
比如int a,b 就是 定义了int存储2个字节, 运算的集合,运算只能完成+ - * /
而算法是一个实现方法的步骤,这是第二步需要完成的,是具体实现的
我举个栗子
国家要制定2019年接下来的五年计划,先在稿纸上写下我的制定计划需要那些数据(大学生人数比,工人就业率,出生率,国家GDP,居民基尼系数,工业产值,负债),数据是什么关系,比如按网的形式连接起来(在计算机中就是“图型”,计算机逻辑结构还有线性表、树),我们先把收集的数据按一定方式存放到档案室(要不然大家不好找)供大家一起研习(这是存储结构,计算机存储结构又分为链式存储、顺序存储等等),还有我们能使用哪些方式,金融,高铁、飞机、坦克大炮、科技(这就是我们定义的运算,我们可以使用的方式)。
这样第一步就完成了,也就是数据结构的部分,完成了
第二步,大家通过看这些数据和我们能使用的方法,开始集思广益,我们该怎么做,先要干什么,在干什么,如果这个目标没达到,就需要想别的方法,然后一套方案就完成了(这就是算法)
算法+数据结构=程序,数据结构,内容包括数数组、链表、堆栈、队列等。
一个优秀的软件开发师需要数据结构可以很高效的处理复杂的问题。 因为移动互联网本身就决定了数据的重要程度。 所以数据结构算法真的很重要, 尤其是搞大数据处理的时候。
数据结构与算法它们可以相互区别也可以相互统一。数据结构是数据间的有机关系,算法是对数据的操作步骤。
数据结构是按照逻辑关系组织起来的一批数据,按期存储结构把他存储在计算机中,并在这些数据上定义一个运算的集合。(简单说就是先在稿纸上画出这个数据怎么组织起来,这是逻辑关系,然后在计算机中怎么存储,是按顺序存,还是加个指针索引的存,这是存储结构,最后还要定义一些运算,就是这个数据能完成那些操作)
数据结构是数据间的有机关系,算法是对数据的操作步骤。这两个概念间的逻辑关系贯穿了整个程序世界,首先二者表现为不可分割的关系。没有数据间的有机关系,程序根本无法设计,例如,设计a+b的程序,你总得找到a和b的值吧,a和b必须是可以互相找到的才能进行程序运算,a和b就必然要联结成一定的关系,或是线性关系,或是树型关系,或者是图型关系,你的程序才能产生,杂乱无章的数据-------就是没有数据结构的数据,是没有算法的,你试试做一个电子运动的时间和坐标对应的算法看看行不行,显然不行。因为有了数据结构,算法才能诞生。反过来,算法又是数据结构得以维持的一个条件,没有算法,数据根本无法有规律的打交道,也就是说数据的间只会是杂乱无章地碰撞,这样数据结构就会消灭。算法是绝对运动的,数据结构是相对静止的,二者是不可分割的关系。数据结构和算法不仅仅是计算机中才有的,计算机是后来诞生的东西,计算机的概念来源于自然界,自然界中例如一棵树的根和树叶之间的信息交流就是一个算法,是建立在根数据和树叶数据之间可以相通的关系上的算法,计算机只是自然界的一个模拟,编程语言不是程序的一个要素,因为自然界是没有语言的,但是有程序,这是唯物主义的观点。
算法是活泼的,数据结构是迟钝的,算法的发展要求数据结构跟着发展,否则就会阻碍算法的发展,算法的发展或迟或早必然冲破数据结构的束缚,二者必然将建立在一个新的起点继续着矛盾运动,
数据结构是相对静止的,算法是绝对运动的,这二者首先表现为不可分割的关系。没有一定组织关系的数据,算法就无法产生,你不可能对一堆杂乱无章的数据编写算法,你要想对数据进行操作,必须能够找到数据,这样就必须将它们按照一定规律组织起来-----这个过程不一定是算法,但是算法可以实现这个过程,数据结构是算法得以诞生的条件-----否则就是数据间的杂乱无章的运动,但是运动并不是算法。反过来算法是数据结构得以维持的条件,没有了算法对数据进行操作,数据就不会有规律地进行交互,数据结构也就随之消灭。客观世界是物质的,物质是运动的,运动是有规律的,有规律的运动就是程序,客观世界是存在程序的,所以不用担心没有算法世界会怎么样,如果没有规律的运动,就不会有人。
算法的革命的、活泼的,数据结构是反动的、迟钝的,算法的发展必然推动数据结构的发展,简单的数据结构不可能适应复杂的算法,只有提供多种复合的数据结构才能为复杂的算法提供新的空间,算法的发展必然会冲破数据结构的束缚-----不过不要忘记了这种物的规律是由人来实现的。
数据结构和算法不一样吗?
不一样。
数据结构,无论复杂或简单,只是数据。
算法是计算机可执行的数值计算方法,它加工数据,产出数据。
数据是原料和制成品。
算法是工厂,是生产流水线。
算法和数据有关,但两者不一样。
蛋糕厂同鸡蛋,面粉有关,但蛋糕厂不同于原料。
不一样。
说白一点:
算法是完成某件事的方法
数据结构是实现这个方法的方法。
程序就是数据结构+算法
不是!
算法是属于数据结构的!
数据结构是为编程找最简单的路径!
举例来说明最好了
都知道数据库吧
那个可以看作为仓库
而数据结构是说仓库中的物品的摆放方式,如Tree,List...
而算法是说摆放物品的行为方式,比如是塞进仓库,拉进去,还是推进去
这个肯定是不一样,有区别的。数据是一切能输入计算机中的信息的总和,结构是指数据之间的关系。数据结构就是将数据及其之间的关系有效地存储在计算机中并进行基本操作。
算法是对特定问题求解步骤的一种描述,通俗讲就是解决问题的方法和策略。
但是他们又是相辅相成的。只有数据结构没有算法,相当于只把数据存储到计算机中,而没有有效的方法去处理,就像一幢只有框架的烂尾楼;若只有算法,没有数据结构,就像沙漠里的海市蜃楼,只不过是空中楼阁罢了。
数据结构是算法实现的基础,算法总是要依赖于某种数据结构来实现的。数据结构是数据间的有机关系,而算法是对数据的操作步骤;两者不可分开来谈,不能脱离算法来讨论数据结构,也不能脱离数据结构研究算法。
如果你还不太清楚,或者想知道的更多,可以去了解一下小码哥李明杰。
一、数据结构和算法浅析
数据结构是计算机 存储 、 组织数据 的 方式 。数据结构是指相互之间存在一种或多种特定关系的数据元素的 集合 。通常情况下,精心选择的数据结构可以带来更高的 运行或者存储 效率。数据结构往往同高效的 检索算法 和 索引 技术有关。
Tips :后面会详细学习记录每一种数据结构,这里只做概念的解释
定义 :为解决一个问题而采取的方法和步骤,就称为“算法”。
特征 :一个算法应该具有以下五个重要的特征
算法的有穷性是指算法必须能在执行有限个步骤之后终止。
算法的每一步骤必须有确切的定义。
一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件。
一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的。
算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步骤,即每个计算步骤都可以在有限时间内完成(也称之为有效性)。
算法复杂度----数据结构和算法学习的精髓
算法复杂度是指算法在编写成可执行程序后,运行时所需要的资源,资源包括时间资源和内存资源。应用于数学和计算机导论。
1、数据结构是指一组数据的存储结构
2、算法就是操作数据的方法
3、数据结构和算法是相辅相成的,数据结构是为算法服务的,而算法要作用在特定的数据结构之上
学习数据结构和算法中。。。算是给自己立的flag,知识总结。
数据结构与算法之间的关系
数据结构:是一门研究程序设计中计算机操作的对象以及它们之间的关系和运算的一门学科。
研究是数据元素之间抽象化的相互关系和这种关系在计算机中的存贮表示,并对每种结构定义各自的运算,设计出相应的算法,而且经过运算后所得的新结构一般仍然是原来的结构类型。
算法:是执行特定计算的有穷过程。特点: 动态有穷,确定性,输入,输出,可行性。
呵呵!下面你自己想办法了,自己的事自己做,就这么多了啊
数据结构:是一门研究程序设计中计算机操作的对象以及它们之间的关系和运算的一门学科。
研究是数据元素之间抽象化的相互关系和这种关系在计算机中的存贮表示,并对每种结构定义各自的运算,设计出相应的算法,而且经过运算后所得的新结构一般仍然是原来的结构类型。
算法:是执行特定计算的有穷过程。特点: 动态有穷,确定性,输入,输出,可行性。
呵呵!下面你自己想办法了,自己的事自己做,就这么多了啊
数据结构学的到底是什么?和算法有什么关系?
首先,数据结构是一门计算机语言学的基础学科,它不属于任何一门语言,其体现的是几乎所有标准语言的算法的思想。
上面的概念有一些模糊,我们现在来具体说一说,相信你门的数据结构使用的是一门具体的语言比如C/C++语言来说明,那是为了辅助的学习数据结构,而数据结构本身不属于任何语言(相信你把书上的程序敲到电脑里面是不能通过的吧,其只是描述了过程,要调试程序,还需要修改和增加一些东西)。你们的书上开始应该在讲究数据的物理存储结构/逻辑存储结构等概念,说明数据结构首先就是“数据的结构”,在内存上的存储方式,就是物理的存储结构,在程序使用人员的思想上它是逻辑的。比如:
你们在C/C++中学习到链表,那么链表是什么一个概念,你们使用指针制向下一个结点的首地址,让他们串联起来,形成一个接一个的结点,就像显示生活中的火车一样。而这只是对于程序员的概念,但是在内存中存储的方式是怎样的那?对于你程序员来说这是“透明”的,其内部分配空间在那里,都是随机的,而内存中也没有一个又一根的线将他们串联起来,所以,这是一个物理与逻辑的概念,对于我们程序员只需要知道这些就可以了,而我们主要要研究的是“逻辑结构”。
我可以给你一个我自己总结的一个概念:所有的算法必须基于数据结构生存。也就是说,我们对于任何算法的编写,必须依赖一个已经存在的数据结构来对它进行操作,数据结构成为算法的操作对象,这也是为什么算法和数据结构两门分类不分家的概念,算法在没有数据结构的情况下,没有任何存在的意义;而数据结构没有算法就等于是一个尸体而没有灵魂。
C,数据结构,算法,这是什么关系
C是一门程序语言,
不管什么算法和数据结构,对于计算机科学来说,必须借助于计算机语言来时实现。
算法和数据结构可以独立于计算机语言而存在的。没有计算机,他们也有存在的价值。
所以才有用C语言描述的算法,用C语言描述的数据结构
1、C 计算机编程语言。(计算机可以识别,并且执行的程序就是靠这些高级计算机语言实现)
2、数据结构指的是数据之间的相互关系,即数据的组织形式。
1.数据结构一般包括以下三方面内容:
① 数据元素之间的逻辑关系,也称数据的逻辑结构(Logical Structure);
数据的逻辑结构是从逻辑关系上描述数据,与数据的存储无关,是独立于计算机的。数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。
② 数据元素及其关系在计算机存储器内的表示,称为数据的存储结构(Storage Structure);
数据的存储结构是逻辑结构用计算机语言的实现(亦称为映象),它依赖于计算机语言。对机器语言而言,存储结构是具体的。一般,只在高级语言的层次上讨论存储结构。
③ 数据的运算,即对数据施加的操作。
数据的运算定义在数据的逻辑结构上,每种逻辑结构都有一个运算的集合。最常用的检索、插入、删除、更新、排序等运算实际上只是在抽象的数据上所施加的一系列抽象的操作。
所谓抽象的操作,是指我们只知道这些操作是"做什么",而无须考虑"如何做"。只有确定了存储结构之后,才考虑如何具体实现这些运算。
3、算法 ,参考上面的“如何做”就明白了(算法:计算方法,实现某个目的需要的计算方法,一种手段,具体可以参考很多算法的书籍)
什么是数据结构和算法
程序=数据结构+算法
数据结构是相互之间存在的一种或多种特定关系的数据元素的集合。包括4类基本的结构:集合、线形结构、树形结构、图状或网状结构。通俗点就是数据的逻辑结构,比方说这些数据在内存中以什么样的结构存放。
算法实际是编程过程中完成一件事采用的方法,比方说现实生活中做数学题时两个人都将题完成但是他们之间有一个用的时间很短就是因为采用了简便的方法。同样在编程过程中采用好的算法可以降低程序的时空复杂度