[总结]数据结构真是博大精深(一)

数据结构学习提纲

(最终解释权归原作者所有,侵权必究)

绪论

1、【概念】数据、数据元素、数据项、数据对象、数据结构

数据:能被输入到计算机中,能被计算机识别,且能被计算机加工处理的符号集合,是计算机操作对象的总称。

数据元素:数据的一个基本单位。如果数据元素被组织成表结构,也称其为数据记录。

数据项:构成数据元素的单位,可以是原子项,也可以是组合项。

数据对象:性质相同的数据元素的集合,是数据的一个子集。

数据结构:关系,相互之间存在着某种逻辑关系的数据元素的集合。

数据包含数据对象,数据对象包含数据元素,数据元素包含数据项。

2、【概念】数据的逻辑结构和存储结构

逻辑结构:对数据元素的逻辑关系的描述,常用图形表示法表示,包括集合结构、线性结构、树形结构、图形结构。

存储结构(物理结构);需考虑数据的存储和关系的存储,包括顺序存储和链式存储。

3、【概念】抽象数据类型(ADT:Abstract Data Type)

数据类型:一个值的集合以及定义在这个值集上的一组操作的总称。

抽象数据类型:一个数学模型以及定义在该模型上的一组操作,只取决于逻辑。具有数据抽象数据封装两个特性。可用三元组(D,S,P)表示,其中D是数据对象,S是D上的关系集,P是对D的基本操作集。

4、【概念】算法

问题求解所需要的具体步骤和方法,是规定的一个有限长的操作序列。具有0或多个输入,1或多个输出确定性有限性有效性五大特性。算法效率分析方法有事后统计法事前分析估算法。对于一个算法,其时间效率和空间效率往往是相互影响的,当追求较高的时间性能时,可能会导致更高的空间复杂度。

5、【概念】时间复杂度

算法所耗费的时间 = 算法中每条语句的执行时间之和

每条语句的执行时间 = 语句的频度 * 语句执行一次所需时间

算法的运行时间主要取决于算法选用的策略,问题的规模,编写程序的语言,编译程序产生的机器代码质量,计算机执行指令的速度。一般情况下,算法中的基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f(n)的极限值为非零的常数,则成f(n)是T(n)的同数量级函数,即T(n)的增长率与f(n)的增长率相同。记作T(n)=O(f(n)),则称O(f(n))为算法的渐进时间复杂度。算法分析中不区分算法的时间复杂度和渐进时间复杂度。常见的时间复杂度按递增排列为O(1)、O(log n)、O(n)、O(nlogn)、O(n^2)、O(n^3)、……、k次方阶O(n^k)、指数阶O(2^n)

6、【概念】空间复杂度

算法的空间消耗包括存储算法本身所占用的存储空间,算法的输入输出数据所占用的存储空间,以及算法在运行过程中临时占用的存储空间。

S(n)=O(g(n))也是问题规模的函数,表示随着问题规模n的增大,算法运行所需存储量的增长率与g(n)的增长率相同。

线性表

1、【概念】线性表

最简单的一种线性结构。具有如下特征:集合中必存在唯一的第一元素,集合中必存在唯一的最后元素,除最后元素在外,均有唯一的

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值