① 算法和数据结构有什么区别
一、指代不同
1、算法:是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令。
2、数据结构:指相互之间存在一种或多种特定关系的数据元素的集合。
二、目的不同
1、算法:指令描述的是一个计算,当其运行时能从一个初始状态和(可能为空的)初始输入开始,经过一系列有限而清晰定义的状态,最终产生输出并停止于一个终态。
2、数据结构:研究的是数据的逻辑结构和数据的物理结构之间的相互关系,并对这种结构定义相适应的运算,设计出相应的算法,并确保经过这些运算以后所得到的新结构仍保持原来的结构类型。
三、特点不同
1、算法:算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步骤,即每个计算步骤都可以在有限时间内完成。
2、数据结构:核心技术是分解与抽象。通过分解可以划分出数据的3个层次;再通过抽象,舍弃数据元素的具体内容,就得到逻辑结构。
② 数据结构与算法
赤水残阳 的说法有问题,什么叫学好数据结构?你能用数据结构的知识实现STL库、Boost库、解决实际编程问题。
①要学好数据结构,至少要学好一门计算机语言。
②所以如果你的计算机语言是C++,那么不学好C++,数据结构绝对无法学好(铁定)。
③为什么?
计算机开发领域专业核心课程就几门:数据结构、操作系统原理、数据库系统原理、汇编语言程序设计。
而数据结构是这另外几门核心课程的基础。
数据结构最终是为了实现,如果你不边学边实验C++代码,那么学起来就如走马观花,无法从细节上庖丁解牛。
到时候,数据结构会出很多编程要求,假设一个人指针没学好,单向链表、双向链表、二叉树、图都没法编程。
不过,就算你C++之前没怎么投入时间,放假半个月到一个月集中精力投入时间,也是可以弥补的,甚至比你们班大多数做得更好:不断编程实践。
③ 数据结构与算法
看题可知实际上就是要从表A中删除出现在表B和表C交集D里的元素
那么首先肯定是要先确定表B和表C和交集D,由于ABC都是递增线性表,所以可以确定B和表C和交集D的边界(可以不用从头到尾来遍历表B和表C,属于优化范畴),之后再遍历A表删除其在D中的元素,遍历时同样适用上面的边界处理
既然是要嵌套遍历三个表那么时间复杂度自然就是na*nb*nc
④ 数据结构和算法有什么关系数据结构就是算法吗
首先你要弄清楚数据结构是什么?数据结构呢其实就是一种存储数据之间的逻辑结构:比如我们学过的线性结构:顺序表啦,链表啦;层次结构:树啦。合适的数据结构可以带来更高的运行效率和存储效率,与相应解决实际问题算法的适应性也就越高,这也就是为什么一些算法指定了数据存储必须以某种特定的数据结才行。一般都是根据合适的数据结构来设计算法,而不是根据算法来设计数据结构。
算法和数据结构往往是互不分开的。离开了算法,数据结构就显得毫无意义,而没有了数据结构算法就没有实现的条件。良好的数据结构思想就是一种高效的算法,但是数据结构不等于算法。只有当数据结构用于处理某个特定问题类型的时候,数据结构才会体现为算法。要想细致的了解,就要多看书,因为这东西毕竟发展了那么多年,一两句话是说不清楚的。想知道更多的数据结构与算法知识吗?可以去了解一下小码哥李明杰。
⑤ 数据结构和算法
数据结构和算法不是一个概念。
Data structure
and
Algorithm
书名字是两种的话说里面都有,一般的话这两种是分不开的。如果只说数据结构的话书中比名字是两种的少一部分内容,应该可以这样理解。
单纯的算法有动态规划,贪心,枚举之类的,不需要比较麻烦的数据结构。
另外大部分的算法都需要数据结构辅助,比如说搜索(队列,栈或其它),单源最短路算法(需要图的结构,这部分应该属于数据结构与算法),还有些比较麻烦的。
数据结构中一般会存在算法,比如二叉树,平衡二叉树,堆,栈,队列……还有些比较麻烦的,线段树,红黑树…………这之类的,里面的数据结构的操作往往会涉及到一些精心设计的算法来达到高效的目的。
二者不能是包含关系。
⑥ 什么是数据结构和算法
算法就是计算机处理解决问题的计算机能理解的方法。
比如算一个阶乘 , 计算机的算法就是写一个循环,从高到底, 一直乘下去,直到 1 为止。
复杂的算法比如一个强连通带权网络,求两点间的最短路径,这个很有用啊....比如采用广度优先算法,或深度优先算法
数据结构指数据在计算机中存储存在的方式。
比如文件在硬盘中,有二进制,文本等形式存放, 程序中的一组数字可能放在数组里面,也可能在栈里面,也肯能在链表里面
⑦ 什么是数据结构和算法
数据结构,Data_Structure,其中D是数据元素的集合,R是该集合中所有元素之间的关系的有限集合。数据结构则是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。
数据结构是计算机专业学生在大学期间都会学习的一门课程,但是由于课程偏理论,缺乏实际操作的学习体验,而让大家产生了一种“数据结构不重要,我只要学习了Java/C语言/Python同样能敲代码”的错觉,但其实它是一门集技术性、理论性和实践性于一体的课程。
算法是某一系列运算步骤,它表达解决某一类计算问题的一般方法,对这类方法的任何一个输入,它可以按步骤一步一步计算,最终产生一个输出。
小码哥的李明杰也说过所有的计算问题,都离不开要计算的对象或者要处理的信息,如何高效的把它们组织起来,就是数据结构关心的问题,所以算法是离不开数据结构的,这就是数据与算法。