一篇学完!王道考研408数据规划(全)(王道考研网课怎么样)缩略图

一篇学完!王道考研408数据规划(全)(王道考研网课怎么样)

笔记首发于:lengyueling.cnpdf版别附在 lengyueling.cn 对应文章结束,等待下载造访交流
序文数据规划在学啥如何用程序代码把实际世界的疑问信息化如何用核算机高效地处置这些信息然后创造价值数据规划的根柢概念啥是数据:
数据是信息的载体,是描绘客观事物特征的数、字符及一切能输入到核算机中并被核算机程序辨认和处置的符号的集结。数据是核算机程序加工的材料。
现代核算机处置的数据:
现代核算机——常常处置非数值型疑问关于非数值型的疑问:咱们关怀每个个另外具体信息咱们还关怀个别之间的联络
数据元素:
数据元素是数据的根柢单位,一般作为一个全体进行思考和处置
一篇学完!王道考研408数据规划(全)(王道考研网课怎么样)插图

数据项:
一个数据元素可由若干数据项构成,数据项是构成数据元素的不可以切割的最小单位。
数据目标:
数据目标是具有相同性质的数据元素的集结,是数据的一个子集
数据规划:
数据规划是彼此之间存在一种或多种特定联络的数据元素的集结。数据规划这门课偏重重视的是数据元素之间的联络,和对这些数据元素的操作,而不关怀具体的数据项内容。数据规划的三要素三要素:
逻辑规划集结规划,各个元素同属一个集结,别无其他联络线性规划,一对一,次序联络树状规划,一对多图状规划,多对多
数据的运算,关于某种逻辑规划,联系实践需要,界说根柢运算(增批改查)物理规划(储存规划),如何用核算机完成这种数据规划次序存储:把逻辑上相邻的元素存储在物理方位上也相邻的储存单元中,元素之间的联络由储存单元的邻接联络来体现链式存储:把逻辑上相邻的元素存储在物理方位上可以不相邻,凭仗指示元素存储地址的指针来标明元素之间的逻辑联络。索引存储:在储存元素信息的一起,还简历附加的索引表。索引表中的每项变成索引项,索引项的一般方法是(要害词,地址)散列存储:根据元素的要害词直接核算出该元素的存储地址,又称哈希存储
总结:
若选用次序存储,则各个数据元素在物理上有必要是接连的;若选用非次序存储则各个数据元素在物理上可所以离散的数据的数据规划会影响存储空间分配的便利程度数据的存储规划会影响对数据运算的速度运算的界说是关于逻辑规划的,指出运算的功用运算的完成是关于存储规划的,指出运算的具体进程数据类型:
数据类型是一个值的集结和界说在此集结上的一组操作的总称
原子类型:其值不可以再分的数据类型(bool、int等)规划类型:其值可以再分化为若干分量的数据类型(struct等)笼统数据类型(adt):
是笼统数据组织及其有关的操作,界说了一个adt就是在界说一种数据规划
算法的根柢概念啥是算法:
程序=数据规划+算法算法(algorithm)是对特定疑问求解进程的一种描绘,它是指令的有限序列,其间的每条指令标明一个或多个操作算法的特征:
算法有必要具有以下特性,否则不能被称为算法:有穷性:一个算法有必要总在实施有穷步之后结束,且每一步都可在有穷时刻内结束。断定性:算法中每条指令有必要有切当的意义,关于相同的输入只能得出相同的输出。可行性:算法中描绘的操作都可以经过现已完成的根柢运算实施有限次来完成。输入:一个算法有零个或多个输入,这些输入取自于某个特定的目标的集结。输出:一个算法有一个或多个输出,这些输出是与输入有着某种特定联络的量。好算法的特质:
正确性:算法应可以正确地处置求解疑问。可读性:算法应具有杰出的可读性,以协助我们了解。健旺性:输入不合法数据时,算法能恰当地做出反应或进行处置,而不会发生难以想象的输出成果。高功率:花的时刻少:时刻凌乱度低低存储量需要:费内存,空间凌乱度低算法的时刻凌乱度界说: 事前预预算法时刻开支t(n)与疑问规划n的联络(t标明“time”)
规则:
加法规则:t(n) = t1(n) + t2(n) = o(f(n)) + o(g(n)) = o(max(f(n), g(n))) (多项相加,只保存最高阶的项,且系数变为1)乘法规则:t(n) = t1(n)×t2(n) = o(f(n))×o(g(n)) = o(f(n)×g(n))(多项相乘,都保存 )算法好坏:o(1) < o(log2n) < o(n) < o(nlog2n) < o(n^2) < o(n^3) < o(2^n) < o(n!) < o(n^n)(口诀:常对幂指阶)数量级仅需思考循环内,最深层嵌套的有些最坏时刻凌乱度:最坏情况下算法的时刻凌乱度均匀时刻凌乱度:一切输入示例等概率呈现的情况下,算法的期望运转时刻最佳时刻凌乱度:最佳情况下算法的时刻凌乱度一般只思考最坏平缓均凌乱度算法的空间凌乱度界说:空间开支(内存开支,s(n))与疑问规划n之间的联络
算法原地作业: 算法所需内存空间为常量
规则:
只需重视存储空间巨细与疑问规划有关的变量加法规则、乘法规则、算法好坏断定与时刻凌乱度相同递归调用的大大都情况:空间凌乱度=递归调用的深度线性表线性表的界说和根柢操作界说:
线性表(linear list)是具有相同数据类型的n(n≥0)个数据元素的有限序列,其间n为表长,当n = 0时线性表是一个空表若用l命名线性表,则其一般标明为l = (a1, a2, … , ai, ai+1, … , an)a1是表头元素an是表尾元素除第一个元素外,每个元素有且仅有一个直接前驱除最终一个元素外,每个元素有且仅有一个直接后继根柢操作:
initlist(&l):初始化表。规划一个空的线性表l,分配内存空间。destroylist(&l):毁掉操作。毁掉线性表,并开释线性表l所占用的内存空间。listinsert(&l,i,e):刺进操作。在表l中的第i个方位上刺进指定元素e。listdelete(&l,i,&e):删去操作。删去表l中第i个方位的元素,并用e回来删去元素的值。locateelem(l,e):按值查找操作。在表l中查找具有给定要害词值的元素。getelem(l,i):按位查找操作。获取表l中第i个方位的元素的值。length(l):求表长。回来线性表l的长度,即l中数据元素的个数。printlist(l):输出操作。按前后次序输出线性表l的一切元素值。empty(l):判空操作。若l为空表,则回来true,否则回来false。啥时分要传入参数的引证“&”: 对参数的批改成果需要“带回来”,是引证类型而不是值类型次序表的界说界说:
用次序存储的方法完成线性表次序存储,把逻辑上相邻的元素存储在物理方位上也相邻的存储单元中,元素之间的联络由存储单元的邻接联络来体现。
如何晓得一个数据元素巨细:
c言语sizeof(elemtype)
次序表的完成-静态分配:

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注