㈠ 数据结构和算法有什么关系数据结构就是算法吗
首先你要弄清楚数据结构是什么?数据结构呢其实就是一种存储数据之间的逻辑结构:比如我们学过的线性结构:顺序表啦,链表啦;层次结构:树啦。合适的数据结构可以带来更高的运行效率和存储效率,与相应解决实际问题算法的适应性也就越高,这也就是为什么一些算法指定了数据存储必须以某种特定的数据结才行。一般都是根据合适的数据结构来设计算法,而不是根据算法来设计数据结构。
算法和数据结构往往是互不分开的。离开了算法,数据结构就显得毫无意义,而没有了数据结构算法就没有实现的条件。良好的数据结构思想就是一种高效的算法,但是数据结构不等于算法。只有当数据结构用于处理某个特定问题类型的时候,数据结构才会体现为算法。要想细致的了解,就要多看书,因为这东西毕竟发展了那么多年,一两句话是说不清楚的。想知道更多的数据结构与算法知识吗?可以去了解一下小码哥李明杰。
㈡ 数据结构和算法
数据结构和算法不是一个概念。
Data structure
and
Algorithm
书名字是两种的话说里面都有,一般的话这两种是分不开的。如果只说数据结构的话书中比名字是两种的少一部分内容,应该可以这样理解。
单纯的算法有动态规划,贪心,枚举之类的,不需要比较麻烦的数据结构。
另外大部分的算法都需要数据结构辅助,比如说搜索(队列,栈或其它),单源最短路算法(需要图的结构,这部分应该属于数据结构与算法),还有些比较麻烦的。
数据结构中一般会存在算法,比如二叉树,平衡二叉树,堆,栈,队列……还有些比较麻烦的,线段树,红黑树…………这之类的,里面的数据结构的操作往往会涉及到一些精心设计的算法来达到高效的目的。
二者不能是包含关系。
㈢ 算法和数据结构有什么区别
一、指代不同
1、算法:是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令。
2、数据结构:指相互之间存在一种或多种特定关系的数据元素的集合。
二、目的不同
1、算法:指令描述的是一个计算,当其运行时能从一个初始状态和(可能为空的)初始输入开始,经过一系列有限而清晰定义的状态,最终产生输出并停止于一个终态。
2、数据结构:研究的是数据的逻辑结构和数据的物理结构之间的相互关系,并对这种结构定义相适应的运算,设计出相应的算法,并确保经过这些运算以后所得到的新结构仍保持原来的结构类型。
三、特点不同
1、算法:算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步骤,即每个计算步骤都可以在有限时间内完成。
2、数据结构:核心技术是分解与抽象。通过分解可以划分出数据的3个层次;再通过抽象,舍弃数据元素的具体内容,就得到逻辑结构。
㈣ 数据和算法,谁更重要
数据只是基础,如何建构起有效的算法、模型比数据本身更重要,最起码对目前而言是这样的。
理想中的大数据的终极形态是不用构建模型,或者说已经构建了全模型,不用针对每次分析的目的去单独建模,数据自身会从数据特性,规律去进行逻辑性分析(非数理分析),人们只需要将所有数据输入,机器就能告诉人们这些数据中,哪些数据说明了什么问题,大数据的输出成果将不是一份报告,而是一个体系,没有一份报告能容纳如此多的结果。到了那个时候,确实是更多的数据胜过更好的算法,因为那时候已经没有了算法,没有什么是不能计算的。
㈤ 数据结构与算法
赤水残阳 的说法有问题,什么叫学好数据结构?你能用数据结构的知识实现STL库、Boost库、解决实际编程问题。
①要学好数据结构,至少要学好一门计算机语言。
②所以如果你的计算机语言是C++,那么不学好C++,数据结构绝对无法学好(铁定)。
③为什么?
计算机开发领域专业核心课程就几门:数据结构、操作系统原理、数据库系统原理、汇编语言程序设计。
而数据结构是这另外几门核心课程的基础。
数据结构最终是为了实现,如果你不边学边实验C++代码,那么学起来就如走马观花,无法从细节上庖丁解牛。
到时候,数据结构会出很多编程要求,假设一个人指针没学好,单向链表、双向链表、二叉树、图都没法编程。
不过,就算你C++之前没怎么投入时间,放假半个月到一个月集中精力投入时间,也是可以弥补的,甚至比你们班大多数做得更好:不断编程实践。
㈥ 数据与结构算法
不是叫做:数据与结构算法,而是应该叫做:《数据结构与算法》,其中:数据结构指的是:顺序表、堆栈、链表、二叉树、图等;而算法一般指的是:各种搜索算法(顺序搜索、二分搜素等)、以及各种排序算法等。
至于说程序中到底是哪一个地方出现 bug,那可不是通过在纸上分析能够分析出来的,而是必须要亲自上机在机器上面调试出来的。
㈦ 数据挖掘与算法是什么关系
data mining:数据挖掘一般是指从大量的数据中自动搜索隐藏于其中的有着特殊关系性(属于Association rule learning)的信息的过程。reference:数据挖掘2.聚类和分类:关于这些,我相信再好的算法,都会有一定的准确度,我没有说这些东西不重要。
3.如果你的数据量足够大,举个例子说明吧,数据挖掘是这样做的,你要判断什么样的苹果是甜的,应该这样做,去超市买苹果,总结甜苹果的特征 A B ,第二次你也去买苹果,就选具备这些特征值的。存的的问题有可能买到的苹果还不是甜的,可能原因是要同时包含特征C。但是如果你数据量足够大,足够大,你要买的苹果直接能够找到,一模一样的苹果,是不是甜的,都已经知道啦,直接取出来不就好了吗?前提是数据你想要什么有什么。
㈧ 数据结构与算法
看题可知实际上就是要从表A中删除出现在表B和表C交集D里的元素
那么首先肯定是要先确定表B和表C和交集D,由于ABC都是递增线性表,所以可以确定B和表C和交集D的边界(可以不用从头到尾来遍历表B和表C,属于优化范畴),之后再遍历A表删除其在D中的元素,遍历时同样适用上面的边界处理
既然是要嵌套遍历三个表那么时间复杂度自然就是na*nb*nc