0%

数据结构基本概念

基本概念和术语

  • 数据:信息的载体,描述客观事物属性,如数字、字符、所有能输入计算机中识别处理的符号集合
  • 数据元素:数据基本单位(数据表中的一行),由数据项组成
  • 数据项:数据元素不可分割的最小单位(理解成属性)
  • 数据对象:数据元素的集合,数据的子集
  • 数据类型:值的集合和定义在此集合上的一组操作的总称
    • 原子类型:值不可再分
    • 结构类型:值可以再分
    • 抽象数据类型:抽象数据组织和操作(即结构和运算)
  • 数据结构:存在关系的数据元素的集合
    • 数据指数据元素
    • 结构指数据元素之间的关系
    • 定义数据结构需要数据对象、结构关系、操作运算

数据结构的三要素

  • 逻辑结构:独立于计算机(物理存储),从逻辑上描述数据的关系,分为线性结构和非线性结构
    • 线性结构(一对一的关系)
      • 一般线性表
      • 受限线性表:栈、队列、串
      • 线性表推广:数组
    • 非线性结构
      • 集合(属于同集合的关系)
      • 树形结构(一对多的关系):一般树、二叉树
      • 图状结构(多对多的关系):有向图、无向图
  • 存储结构:计算机中对数据和关系的表示
    • 顺序存储:逻辑相邻的元素在物理上也相邻存储
      • 优点:可随机存取、节约空间
      • 缺点:只能使用相邻的整块存储单元,容易产生碎片
    • 链式存储:逻辑相邻的元素在物理上可不相邻
      • 优点:不会出现碎片,充分利用所有存储单元
      • 缺点:引入额外指针空间开销、只能顺序存取
    • 索引存储:存储信息的同时,维护一个索引表(表的每个索引项包含关键字和地址)
      • 优点:搜索速度快
      • 缺点:索引表占用额外的存储空间,增删元素时维护索引表需要额外的开销
    • 散列存储:根据关键字直接算出存储地址,又叫哈希(Hash)存储
      • 优点:检索增删操作快
      • 缺点:如果散列函数不好,可能出现大量的冲突,从而增加时间空间开销
  • 数据元素:包括运算定义和运算实现
    • 定义:针对逻辑结构,指出运算的功能效果
    • 实现:针对存储结构,指出运算的操作步骤
阅读全文 »

8.28

第六问的复杂度和正确性部分,把第三行的图中“每个顶点,其能到达的顶点都是标记的”改完“每个标记的顶点,其能到达的顶点都是标记的”

9.11

对于书上的109页算法,一方面要修改第3行的判断条件;另一方面在第7-10行关于邻点的处理完成后还要再进行非邻点的处理。复杂度是O(V^2)的。

12.2

阅读全文 »

宇宙大爆炸

  • 宇宙可观测的范围:直径约930亿光年
  • 奥伯斯佯谬:如果宇宙是无限稳态的,夜晚的天空会像白天一样明亮
    • 解释1:因为宇宙有黑暗星体、尘埃和气体阻隔;但这些最终会加热并发出自己的光
    • 解释2:宇宙是有限的;但这样宇宙会坍塌,边缘星体会被拉向内部
    • 猜想:宇宙大爆炸模型:模型是有限的,正在膨胀的;可以解释奥伯斯佯谬
  • 电磁辐射——波粒二象性
    • 电磁波的能量传输:波有特定波长,与频率成反比
    • 辐射表现为光子流:能量是,短波能量高
  • 元素的特征谱线
    • 元素电子跃迁会吸收或释放特定波长的光
    • 恒星会发出不同的(连续)波长的电磁辐射
    • 恒星外层大气中低温气体吸收特定光子,导致光谱产生吸收谱线(暗谱线)
    • 通过特征谱线,可以判定是什么元素
    • 通过光的强度,可以计算出该元素的浓度
    • 通过太阳光可以探测太阳光球层的成分
  • 红移
    • 其他星系的光谱也有暗谱线
    • 这些光谱的暗线的相对分布类似,说明各星系含有的元素一样
    • 越远的星系,暗线整体红移,说明越远的星系以越大的速度远离我们(多普勒效应)
    • 证明了宇宙正在膨胀
  • 测量星体和地球的距离
    • 三角测量法:只适合测量星系中近距离的天体,不适合确定宇宙的膨胀
    • 标准烛光法:距离越远,能力越分散,亮度越低
    • 大小和亮度法:测量最遥远的天体
  • 哈勃定律:
    • H是哈勃常数,也是宇宙年龄的倒数。因为宇宙大爆炸时速度快的星体,现在离我们会更远。
    • 所有的星体都在远离不代表我们是宇宙的中心,因为远离是相对的位置关系
    • 速度可以由红移确定,距离由标准烛光法和星系大小确定
    • 计算出哈勃常数,从而得到宇宙的年龄为137亿年
  • 宇宙大爆炸的证据
    • 星系的光谱红移
    • 宇宙背景辐射(黑体辐射)
    • 宇宙中的H/He比值
  • 黑体辐射
    • 黑体指的是入射电磁波吸收率100%,但仍要对外辐射
    • 宇宙各方向有强度不变的背景微波辐射,大约是3K
  • 宇宙的组成:73%的暗能量、23%的暗物质、4%的原子

元素起源

  • 地球陆壳元素丰度排序:O、Si、Al、Fe、Ca
  • 地球上元素丰度排序:Fe、O、Si、Mg、S、Ni、Ca、Al
  • 太阳中元素丰度排序:H、He、O(Fe含量不低)
  • 原子结构:原子核、质子、中子、电子
    • 质量看原子核
    • 大小看电子云大小
    • 上标质量数,下标质子数
  • 四种基本力: 引力、电磁力、弱力、强力。
    • 强力和电磁力使原子稳定。
    • 核素表的稳定带:强力可以把原子核的质子和中子稳定结合在一起
    • 核素表不稳定的区域会发生核反应,例如电子捕获把质子变中子、衰变把中子转化为质子和电子、衰变放出He、裂变等
  • 同位素:质子数相同
  • 同重核素:质量数相同
  • 质能方程:
  • 质量陷阱:没有质量数是5和8的核素
    • 宇宙大爆炸形成了大部分氢氦,和少量锂铍硼
    • 宇宙中的H/He质量比约为2.5
    • H和He占宇宙物质质量的99%以上
  • 核聚变只能到56Fe
    • 结合能最高点,在此前放热,此后吸热
    • 更重的核素形成靠的是超新星爆发
    • 星系中元素的分布也受超新星爆发影响
  • 恒星越大,合成元素越多,恒星寿命越短;太阳是质量小的恒星,可以由很多元素组成但不形成重元素。
  • r-过程:快中子捕获
  • s-过程:慢中子捕获
  • p-过程:如质子捕获
  • 这些过程的证据
    • 恒星燃烧的唯一能量来源
    • 超新星爆发已被观测
    • 元素相对丰度计算与观测结果相对应
    • 超新星爆发遗迹中观察到锝的吸收线
    • 太阳系物质中短寿期放射性核素证据

矿物和有机分子形成

阅读全文 »

21.1

(1)

如果任意一个NP完全问题可以在多项式时间内解决,则所有NP问题都可以在多项式时间内规约到NP完全问题,从而在多项式时间内解决。

(2)

即证逆否命题,若存在一个NP完全问题能在多项式时间内解决,则所有的NP完全问题都存在多项式时间的解。(因为NPC问题就是NP问题,又根据第一问的结论,显然可证出)

阅读全文 »

20.1

(1)

  • CLIQUE
    • 优化问题:输入无向图;输出最大团大小
    • 判定问题:输入无向图和k;输出图中是否有大小为k的团
  • KNAPSACK
    • 优化问题:输入n个物品、每个物品大小和价值、背包大小;输出背包能装物品的最大价值
    • 判定问题:输入n个物品、每个物品大小和价值、背包大小、价值k;输出背包能否装价值不小于k的物品
  • INDENPENDENT-SET
    • 优化问题:输入无向图;输出最大独立集
    • 判定问题:输入无向图和k;输出图中是否存在大小为k的独立集
  • VERTEX-COVER
    • 优化问题:输入无向图;输出最小点覆盖
    • 判定问题:输入无向图和k;输出图中是否存在大小为k的点覆盖

(2)

  • CLIQUE
    • 优化 判定:多项式内解出优化问题,再把优化结果和k比较即可。
    • 优化 判定: 对k的所有取值进行判定,即可解决优化问题。因为k不超过|V|,故还是多项式时间。
  • KNAPSACK
    • 优化 判定:多项式内解出优化问题,再把优化结果和k比较即可。
    • 优化 判定:对k的所有取值进行判定,即可解决优化问题。因为k不超过价值总和,故还是多项式时间。
  • INDENPENDENT-SET
    • 优化 判定:多项式内解出优化问题,再把优化结果和k比较即可。
    • 优化 判定:对k的所有取值进行判定,即可解决优化问题。因为k不超过|E|,故还是多项式时间。
  • VERTEX-COVER
    • 优化 判定:多项式内解出优化问题,再把优化结果和k比较即可。
    • 优化 判定:对k的所有取值进行判定,即可解决优化问题。因为k不超过|V|,故还是多项式时间。
阅读全文 »

13.1

大概思路是 + 代价初始化 + 从左到右,从下到上以代价计算

具体请根据160页、161页两个数组的定义将思路写成算法形式。

13.2

  • 表示前i个自然数构成的集合是否存在元素和是j
  • 状态初始化
    • ,若
    • ,若
  • 状态转移方程
    • ,若
    • ,若
  • 时间复杂度
阅读全文 »

11.1

算法思想如下: + 把S表示为c进制形式 + 拿枚面值为的硬币,

正确性如下: + 首先该算法输出的硬币,确实刚好能换S金额的钱,这个根据c进制运算即可。 + 假设存在更优的换法,该更优的换法同样可以用c进制串(要求每一位的值都小于c)表示出来。 * 更优的换法之所以可以表示为c进制串(每一位的值都小于c)是因为如果某一位大于等于c,则可以用更高一位的硬币代替(也就是进位操作),这样能得到一个更优的串,直至得到c进制串 * c进制串对同一个大小的数表示是唯一的,这个结论很重要。 * 更优的换法经过若干次优化后变成了我们的换法,矛盾。说明我们的换法就是最优的。

网络的基本概念

  • 网络:弧带权的有向图
    • 弧的权又称弧的容量,记作
    • 只讨论简单的有向图(无环弧、无并行弧)
    • 有一个特殊的源点,记作
    • 有一个特殊的汇点,记作
  • 流:
    • :定义在弧上的非负实值函数
    • :顶点的所有出弧的流量和
    • :顶点的所有入弧的流量和
  • 可行流:
    • 容量约束:
    • 守恒约束:
  • 对于任意网络,可行流总是存在的,比如:零值流
  • 流量:
  • 必有
  • 最大流:流量最大的可行流
  • f增广路
    • 底图中的一条s-t路
    • 经过的每条正向弧
    • 经过的每条反向弧
  • 增广路的“可增量”