算法分析与设计

    1.贪心选择算法适用于部分背包问题,不适用于0-1背包问题
    2.表达算法的抽象机制:伪代码,高级程序设计语言,抽象数据类型(ADT)
    3.程序可不满足有限性
    4.时间复杂性T,空间复杂性S。与问题规模和算法的输入有关
    5.上界函数f(n)=O(g(n)),当n>n0时,f(n)≤cg(n)。只保留最高阶
    6.下界函数f(n)=Ω(g(n)),当n>n0时,f(n)≥cg(n)。
    7.同阶,f(n)=O(g(n))且f(n)=Ω(g(n))
       表示为f(n)=θ(g(n)),当n>n0                  时,c1g(n)≤f(n)≤c2g(n)
    8.f(n)=og(g(n))。对任意的ξ>0,存在正整数n0,当n>n0时有f(n)/g(n)≤ξ。ξ越小,n0越大
    9.常用渐进时间复杂度评价算法的时间性能
    10.算法的时间复杂度不仅仅依赖于问题规模还与输入实例的初始状态有关
    11.分治与递归经常同时应用在算法设计中
    12.递归函数的两个要素:边界条件与递归方程
    13.递归易用数学归纳法证明正确性,但运行效率低,耗费计算时间和占用存储空间
    14.使子问题规模大小相等思想:平衡子问题
    15.改进分治法途径:减少子问题个数,增加预处理,改进分治的均衡度
    16.大整数乘法-快速傅里叶变换-nlogn
    17.分治法的时间复杂性一定低于非分治法x
    18.快速排序的算法性能取决于划分的对称性
    19.动态规划-运筹学-用于解决分段过程最优化-解决过程:多阶段决策问题-依赖于以前步骤的决策结果
    20.矩阵连乘-结合律-加括号
    21.通常用反证法证明最优子结构性质
    22.备忘录方法和递归一样都是自上而下,动态规划是自底向上
    23.n个顶点的凸多边形的三角剖分:n-3条边,n-2个三角形。互不相交弦的集合
    24.流水作业最优调度:M1无空闲时间,M2空闲时间最少。M2有机器空闲和作业积压现象
    25.电路布线问题求最大不相交子集
    26.在二叉搜索树中进行一次搜索需要的平均比较次数:平均路长。要把搜索概率较高的放在较高的层次
    27.贪心选择做出当前看来的最优选择,不从整体最优考虑,某种意义上的局部最优解
    28.活动安排-贪心选择次数:数学归纳证明,选结束时间早的
    29.贪心选择通常自顶向下,迭代,每做一次贪心选择就把问题简化为规模更小的子问题
    30.能够应用贪心算法一定能够应用动态规划法,但是一般来说,贪心算法的效率高于动态规划法。能用动态规划解决的不一定能用贪心解决
    31.贪心选择不能保证把背包装满,部分闲置的背包空间使每公斤背包空间的价值降低了,不能解决0-1背包
    32.贪心算法主要用于处理优化问题(由目标函数(取最大或最小是最优解)和约束条件(可行解)组成)
    33.设计贪心算法核心问题:选择能产生最优解的贪心策略
    34.最优装载选重量轻的,是0-1背包的特例
    35.哈夫曼编码:出现频率较高的字母赋予较短的编码。应用于传真机图像压缩和计算机安全领域。自底向上构造二叉树,n-1次合并,最小堆实现
    36.单源最短路径选从源出发目前用最短的路径所到达的顶点。有向带权图dijkstra
    37.最小生成树:prim算法在保证连通的情况下选择。kruskal算法在保证无回路的情况下选择
    38.按权递增顺序=用堆实现优先队列
    39.当e=Ω(n2)时,Kruskal算法比Prim算法差,但当e=o(n2)时,Kruskal算法却比Prim算法好得多。
    40.存在性问题(求可行解)和优化问题(求最优解)用搜索解空间技术,包括回溯法和分支限界法
    41.解空间的树结构称状态空间树,状态空间,解状态满足约束条件称答案状态
    42.剪枝函数从分析约束条件或某种启发式得到,计算需简单。
    43.回溯法:适用解组合数相当大的问题
    44.问题的解空间应至少包含问题的一个解
    45.递归回溯和非递归迭代回溯
    46.回溯法解题的显著特征:在搜索过程中动态产生子问题的解空间,任何时刻算法只保存从根节点到当前扩展结点的路径
    47.当从解空间树的根节点开始,搜索至叶子结点就找到了问题的解,算法结束(错)
    48.回溯法装载问题:当两艘轮船载重量相等c1=c2且总载重为2c1时,该问题等价于划分问题,为np难问题。引入上界函数后在到叶子结点时就不必检查是否优于最优解。其状态空间树未显示叶结点。子集树
    49.回溯法批处理作业调度:排列树。
    50.符号三角形问题:可行性约束函数+-的个数均不超过n(n+1)/4。无解判段:n(n+1)/2是奇数
    51.旅行售货员问题:排列树
    52.分析回溯法效率主要困难:很难估计在解具体实例时所产生的顶点数
    53.分支限界法:每一个活结点只有一次机会成为扩展结点
    54.优先队列的优先级:最大优先队列-最大堆-最大效益。最小优先队列-最小堆-最小费用
    55.队列式分支限界与解空间广度优先遍历唯一的不同:队列式不搜索不可行结点为根的子树
    56.右儿子结点一定是可行结点。叶子结点不加入活结点队列
    57.装载问题:优先队列式打乱了结点之间的层次关系,所以每个结点都要记录自己所在的层
    58.装载问题:计算剩余重量:由结点入堆时的处理方法决定
    59.0-1背包问题:结点优先级由已装入物品价值+剩下的最大单位重量价值物品装满背包
    60.最小生成树kruskal和prim。单源最短路径dijkstra

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值