zoukankan      html  css  js  c++  java
  • 1.软院算法复习提纲

    《算法设计与分析》复习提纲   2019.12.31

    1 引言(ch1)

    1.什么是算法及其特征

    2.问题实例和问题规模

    2 算法初步(ch2)

    1.插入排序算法

    2.算法复杂性及其度量

      (1)时间复杂性和空间复杂性;

      (2)最坏、最好和平均情形复杂性;

    3.插入排序的最坏、最好和平均时间

    4.归并排序算法及其时间复杂性

    3函数增长率(ch3)

    1.渐近记号O、Ω、θ的定义及其使用

    2.标准复杂性函数及其大小关系

    3.和式界的证明方法

    4 递归关系式(ch4Sch1)

    1.替换法

    (1)猜测解à数学归纳法证明;

    (2)变量变换法;

    2.迭代法

    (1)展开法;

    (2)递归树法;

    3.主定理

    4.补充1:递归与分治法(sch1)

       - 递归设计技术

       - 递归程序的非递归化

       - 算法设计

     (1)Fibonacci数;                   (2)生成全排列;

    (3)二分查找;                     (4)大整数乘法;

    (5)Stranssen矩阵乘法;             (6)导线和开关()

    5 堆排序(ch6)

    1堆的概念和存储结构

    2.堆的性质和种类

    3.堆的操作:建堆;整堆;

    4.堆排序算法和时间复杂性

    5.优先队列及其维护操作

    6 快速排序(ch7)

    1.快速排序算法及其最好、最坏时间和平均时间

    2.随机快速排序算法及其期望时间

    3.Partition算法

    7 线性时间排序(ch8)

    1.基于比较的排序算法下界:Ω(nlogn)

    2.计数排序适应的排序对象、算法和时间

    3.基数排序适应的排序对象、算法和时间

    4.桶排序适应的排序对象、算法和时间

    8 中位数和顺序统计(ch9)

    1.最大和最小值的求解方法

    2.期望时间为线性的选择算法

    3.最坏时间为线性的选择算法及其时间分析

    9 红黑树(ch13)

    1.红黑树的定义和节点结构

    2.黑高概念

    3.一棵n个内点的红黑树的高度至多是2log(n+1)

    4.左旋算法

    5.插入算法的时间、至多使用2次旋转

    6.删除算法的时间、至多使用3次旋转

    10 数据结构的扩张(ch14)

    1.动态顺序统计:

    扩展红黑树,支持①选择问题(给定Rank求相应的元素),②Rank问题(求元素x在集合中的Rank)

    (1)节点结构的扩展;

    (2)选择问题的算法;

    (3)Rank问题的算法;

    (4)维护树的成本分析;

    2.如何扩张一个数据结构:扩张的步骤;扩张红黑树的定理()

    3.区间树的扩张和查找算法

    11 动态规划(ch15)

    1.方法的基本思想和基本步骤

    2.动态规划和分治法求解问题的区别

    3.最优性原理及其问题满足最优性原理的证明方法

    4.算法设计

     (1)多段图规划;                     (2)矩阵链乘法;

     (3)最大子段和;                    (4)最长公共子序列;

    12 贪心算法(ch16)

    1.方法的基本思想和基本步骤

    2.贪心算法的正确性保证:满足贪心选择性质

    3.贪心算法与动态规划的比较

    4.两种背包问题的最优性分析:最优子结构性质和贪心选择性质

    5.算法设计

     (1)小数背包;                       (2)活动安排;

     (3)找钱问题;

    13 回溯法(sch2)

    1.方法的基本思想和基本步骤

    2.回溯法是一种深度遍历的搜索

    3.术语: 三种搜索空间, 活结点, 死结点, 扩展结点, 开始结点, 终端结点

    4.两种解空间树和相应的算法框架

    5.算法设计

     (1)图和树的遍历;                   (2)n后问题;

     (3)0-1背包;                       (4)排列生成问题;

     (5)TSP问题;

    14 平摊分析(ch17)

    1.平摊分析方法的作用和三种平摊分析方法各自特点

    2.聚集分析法及应用

    3.记账分析法及应用

    4.势能法及应用

    15 二项堆(ch19 in textbook version 2)

    1.为什么需要二项堆?二项堆和二叉堆上的几个基本操作时间复杂性

    2.二项堆定义和存储结构

    3.二项堆上合并操作及过程

    4.二项堆应用(尤其是在哪些图论算法上有应用)

    16 不相交集数据结构(ch21)

    1.不相交数据集概念

    2.两种实现方式:链表表示和森林表示

    3.两种表示具体实现和其上操作的时间复杂性

    4.不相交集数据结构应用(尤其是在哪些图论算法上有应用)

    17 图论算法(ch22-ch25)

    1. BFSDFS算法

    - 白色、灰色和黑色结点概念和作用

    - 计算过程及其时间复杂度

    2.最小生成树

    - 安全边概念和一般算法(Generic algorithm

    - Kruskal算法和Prim算法的计算过程和计算复杂性

    - 两种贪心算法的贪心策略和贪心选择性质

    3.单源最短路径

      - 单源最短路径δ(s, v)和短路径上界d[v]概念

      - 边松弛技术及其一些性质

      - 三种问题算法的计算过程及其时间复杂度:Bellman-Ford算法、DAG算法和Dijkstra算法

    4. 所有点对最短路径

      - 为什么能转换为矩阵乘法?

      - 基于矩阵乘法的较慢和快速算法的时间复杂度

      - Floyd-Warshall Algorithm的思路和时间复杂度

      - Johnson Algorithm适应的问题及其时间复杂度(略)

    18 数论算法(ch31)

    1.gcd(a, b)及其表示成a, b线性组合方法

    2.Euclid’s Alg.的运行时间

    3.线性模方程的求解方法

    4.中国余数定理及其相应线性同余方程组的求解

    5.RSA算法过程及正确性基础

    6.简单素数测试算法和伪素数测试算法

    7.MR算法的改进措施和算法复杂性

    19 串匹配(ch32)

    1.朴素的串匹配算法及其时间复杂度

    2. Rabin-Karp串匹配算法及其时间复杂度

    3.有限自动机串匹配算法及其及其时间复杂度

    4.KMP串匹配算法及其时间复杂度

    20 模型和NPC(ch34)

    1.算法的严格定义

    2.几种计算模型的语言识别能力

    3.两类图灵机模型

    4.P问题、NP问题和NP完全问题的定义及P归约

  • 相关阅读:
    android 微信(5.3)聊天UI的布局思考
    android 屏幕适配
    不同Activity之间的动画切换
    Freemarker 进行字符串截取
    如何使带背景图片的Button按钮中的文字居中偏上显示
    关于在IE-8下 button的背景图片不能正确显示的问题
    android Xmpp+openfire 消息推送 :SASL authentication failed using mechanism DIGEST-MD5
    Android运行出现“java.io.IOException: 您的主机中的软件放弃了一个已建立的连接。”
    计算机网络
    Java基础-3
  • 原文地址:https://www.cnblogs.com/zhihaospace/p/12234342.html
Copyright © 2011-2022 走看看