王道数据结构绪论(看至1.2_3)

数据结构即是用程序代码将现实世界信息化,使用计算机高效地处理信息从而创造价值。


数据元素和数据项

一个数据元素由若干个数据项组成,数据项是构成数据元素不可分割的最小单位

举个例子:每个微博账号的资料为一个数据元素,资料的具体项比如生日,简介啥的就是数据项。


数据结构和数据对象

数据结构是相互之间存在一种或多种特定关系的数据元素的集合。

比如:吃海底捞时,每个号码之间有先后顺序。

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

比如:不同门店的取餐号码虽然没有直接关系,但是他们都具有相同的性质即按顺序排列,因此可以把所有门店的取餐号码看作一个数据对象。


数据结构三要素:逻辑结构、物理结构、数据的运算


数据的逻辑结构:集合、线性结构、树状结构、图结构

集合:各个元素同属一个集合,除此之外没有其他关系。

线性结构:数据元素之间是一对一的关系。除了第一个元素,所有元素都有唯一前驱,除了最后一个元素,所有元素都有唯一后继。

树形结构:数据元素之间是一对多的关系。

图结构:数据元素之间是多对多的关系。


数据的物理结构(存储结构):顺序存储、链式存储、索引存储、散列存储

顺序存储:把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现。

链式存储:逻辑上相邻的元素在物理位置上可以不相邻,借助指示元素存储位置的指针来表示元素之间的逻辑关系。

索引存储:在存储元素信息的同时,还建立附加的索引表。索引表中的每项称为索引项,索引项的一般形式是(关键字+地址)。

散列存储:根据元素的关键字直接计算出该元素的存储地址,又称哈希(hash)存储。


绪论部分只需要理解两点:

1.若采用顺序存储,则每个数据元素在物理上必须是连续的;若采用非顺序存储,则每个数据元素在物理上可以是离散的。

2.数据的存储结构会影响存储空间分配的方便程度。

3.数据的存储结构会影响对数据的运算速度。


数据的运算——运算的定义和实现

运算的定义:针对逻辑结构,指出运算的功能。

运算的实现:针对存储结构,指出运算的具体操作步骤。


数据类型:值和操作。


算法效率的度量:时间复杂度和空间复杂度

算法的时间复杂度:

事前预估算法的时间开销T(n)与问题规模n的关系。(之所以要事前预估,是因为有的问题不可在事后再来统计,比如导弹的发射,你不能等导弹发出去后再统计,那就没有意义了)算法的性能问题只有在n很大时才会暴露出来。

常对幂指阶,时间复杂度逐步增大。

1.顺序执行的代码只会影响常数项,可以忽略。

2.只需挑循环中的一个基本操作分析它的执行次数和n的关系即可。

3.如果有多层嵌套循环,只需关注最深层循环循环了几次。


算法的空间复杂度

没咋看明白,罢了罢了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沙福林学编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值