《数据结构》复习——第一章 数据结构概论

1.1 数据结构的概念

数据与数据结构

数据是信息的载体,是描述客观事物的数、字符,以及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。数据的基本单位是数据元素。

数据结构由某一数据元素的集合和该集合中数据元素之间的关系组成。记为:
Data_Structure = { D , R } \{D, R\} {D,R}

数据结构的分类

主要分为:线性结构和非线性结构

  • 线性结构
    也称为线性表,所有数据元素都按某种次序排列在一个序列中。
    根据对线性结构中数据元素存取方式的不同,还分为直接存取结构、顺序存取结构和字典结构。

  • 非线性结构
    根据关系的不同,可分为层次结构(树)和群结构(集合、图)。

数据的逻辑结构,简称数据结构:从解决问题的需要出发,为实现必要的功能所建立的数据结构,是属于用户的视图,面向问题。
数据的物理结构:数据应该如何在计算机中存放,是数据逻辑结构的物理存储方式,是属于具体实现的视图,面向计算机。

数据结构的存储结构可用以下4种基本存储方式获得:

  1. 顺序存储方式 2. 链接存储方式 3. 索引存储方式 4. 散列存储方式

1.2 数据结构的抽象形式

数据类型

类型是一组值的集合。可分为原子类型和结构类型。
原子类型中的每个数据都无法再分,如整数、浮点数、字符、指针等
结构类型由原子类型按照一定的规则构造而成。结构类型还可以包含结构类型。
数据类型是指一种类型,以及定义于这个值集合上的一组操作的总称。

数据抽象与抽象数据类型

抽象数据类型通常是指由用户定义,用以表示应用问题的数据模型。由基本的数据类型组成,并包括一组相关的服务。

1.4 算法定义

算法定义:一个有穷的指令集,这些指令为解决某一特定任务规定了一个运算序列。具有如下特性:

  1. 有输入 2. 有输出 3. 确定性 4. 有穷性 5. 能行性

1.5 算法性能分析与度量

算法性能标准

  1. 正确性 2. 可使用性 3. 可读性 4. 效率 5. 健壮性 6. 简单性

算法的事前估计

算法复杂性度量属于事前估计。可分为空间复杂度度量时间复杂度度量

空间复杂度度量:当问题的规模以某种单位从1增加到n时,解决这个问题的算法在执行时所占用的存储空间也以某种单位由1增加到 S ( n ) S(n) S(n),则称此算法的空间复杂度为 S ( n ) S(n) S(n)
时间复杂度度量:当问题的规模以某种单位从1增加到n时,解决这个问题的算法在执行时所耗费的时间也以某种单位由1增加到 T ( n ) T(n) T(n),则称此算法的空间复杂度为 T ( n ) T(n) T(n)

算法的渐进分析

渐进分析简称算法分析。直接与它所求解的问题的规模n有关,求算法的时间和空间开销与问题规模n的关系。

  1. 渐进的时间复杂度

  2. 大O渐进表示
    大多数情况下,只要得到一个估计值就可以了。要全面分析一个算法,需要考虑算法在最坏情况下、在最好情况下、在平均情况下的时间代价。对于最坏情况,主要采用大O表示法来描述。
    一般提法是:当且仅当存在正整数 c c c n 0 n_0 n0,使得 T ( n ) ≤ c f ( n ) T(n) \leq cf(n) T(n)cf(n)对所有的 n ≥ n 0 n \geq n_0 nn0成立,则称算法的时间增长率在 O ( f ( n ) ) O(f(n)) O(f(n))中,即为 T ( n ) = O ( f ( n ) ) T(n) = O(f(n)) T(n)=O(f(n))

  3. 渐进的空间复杂度

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值