算法原理复习提纲(2)

7 均摊分析

重点:通过表扩张掌握势能方法
通过求一个操作序列中所执行的所有操作的平均时间,来评价操作的代价
但是摊销分析不涉及概率,只是对最坏情况下的平均,关注不同操作间的差异

7.1 聚集方法

为每个操作赋予相同的摊销代价,即使序列中存在不同类型操作,聚集方法中每个操作的摊销代价即为平均代价
在这里插入图片描述

7.2 记账方法

不同的操作有不同的摊销代价
在这里插入图片描述

7.3 势能方法

定义一个势函数Φ,只要Φ(Dn)>=Φ(D0)
在这里插入图片描述
摊销代价依赖于所选择的势函数,不同的势函数可能产生不同的摊销代价,但他们都是实际代价的上界
对于栈操作:
在这里插入图片描述

7.4 表扩张操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8 随机算法

重点掌握随机算法的设计应用
在这里插入图片描述

  • 确定性算法:算法的步骤、结果、时间复杂度是确定的
  • 随机算法:算法在同一实例上的计算复杂度是随机变量
  • 随机投点法
    求π值,求定积分面积
  • 平均值法
    无意识统计学家法则https://blog.csdn.net/i_dovelemon/article/details/76286192
    在这里插入图片描述
  • 素数测试问题
    素数必满足费马小定理,不满足费马小定理的一定不是素数,满足费马小定理不一定是素数
  • 最小割问题
    随机选择一条边将其收缩成一个新顶点,生成最小割的概率是2/n2
  • N皇后问题
    随机放,相互攻击的话就return false
  • 随机选择算法:线性时间元素选择问题,输出第k小的元素
    抽选n3/4个元素

对于拉斯维加斯算法,获得正确解的概率为p,则称该算法为p正确的拉斯维加斯算法

  • 随机排序算法
    快速排序中随机选择一个点作为划分依据

9 近似算法

了解近似算法的近似比分析方法,重点分析简单近似算法的近似比

  • 近似比:ε ρ
  • 近似模式:多项式时间近似模式、完全多项式时间近似模式
    在这里插入图片描述
  • 顶点覆盖问题:
    **NP完全问题:**用尽量少的顶点覆盖所有边
    时间复杂度是O(|V|+|E|)
    每次任取一个边
  • 装箱问题
    已有的箱子装不下的话就另开一个箱子
    时间复杂度是O(n2)
  • 最短并行调度问题
    新任务给完成时间快的机器
  • 旅行商问题(符合三角不等式)
    最小生成树+前序遍历+三角不等式
  • 子集和问题:动态规划也行完全多现实性时间近似模式
    只选取y>last(1+delta)的元素
  • 集合覆盖问题
    选择能覆盖的尽量多的未被覆盖的元素
  • 不相交路径问题
    每次从图中删去路径最短的结点对
    证明不做要求
  • 最大割问题**(NP完全问题)**
    定义cost函数,每次交换cost>0的点
    在这里插入图片描述

10 树搜索策略(不考)

10.1 典型树搜索策略

10.2 人员分配问题

10.3 旅行商问题

  1. 爬山法+分支限定法
  2. 采用特定的剪枝策略,

10.4 A*算法

定义结点代价f(n)=g(n)+h(n), g(n)是根节点到当前结点的代价,h(n)是到未来目标节点的估计值
h(n)=0时,A*算法退化成dijsktra算法
h(n)比g(n)大很多时,只有h(n)起作用,演变成贪婪最佳优先搜索算法(greedy best-first search)

11 NP问题(概念)

  • 连续统假设:不存在一个基数绝对大于可列集而绝对小于实数集的集合
  • P类问题:确定性多项式时间可解
    在这里插入图片描述
  • NP问题:非确定性多项式时间可解
    在这里插入图片描述
  • NP难:如果NP里的每一个问题Q都能用多项式时间规约到问题S,那么S是NP难
    在这里插入图片描述
  • NP完全:NPC问题是NP里最困难的问题,如果任意一个NPC是多项式时间可解的,那么P=NP
    在这里插入图片描述
    NPC问题:布尔公式的可满足性问题、整数线性规划问题、图着色问题、哈密顿环、旅行商、作业调度问题

12 优化算法

12.1 模拟退火算法

  • 状态产生函数
  • 状态接受函数
  • 温度更新函数
  • 初温设定、内循环终止、外循环终止
    模拟退火算法求解旅行商问题:随机选择两个结点,交换路径中这两个结点的位置

12.2 遗传算法

  • 编码:二进制编码
  • 得到初始种群
  • 遗传:轮盘赌
  • 变异:单点交叉/多点交叉(对于旅行商问题可以部分匹配交叉、顺序交叉、循环交叉)

12.3 粒子群算法

13 线性时间排序算法(不考)

13.1 比较排序的时间下界

决策树模型
在这里插入图片描述
比较排序算法的执行就是从决策树根到某个叶子所经过的路径
在这里插入图片描述

13.2 计数排序

假设输入是介于0-k之间的整数,开一个长度为k的数组
在这里插入图片描述
时间复杂度是O(n+k),空间复杂度是O(n+k),是稳定排序

13.3 基数排序

在这里插入图片描述
每一位数分别排序

13.4 桶排序

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值