算法课知识点总结

** SYSU-2018-zzz老师算法课知识点汇总 **

Course Progress

  1. Introduction
  2. Data structures, NP-completeness
  3. Greedy algorithms
  4. Divide-and-conquer
  5. Dynamic programming
  6. Graph algorithms
  7. Search algorithms
  8. Heuristic algorithms
  9. Network flows

chapter1-Introduction

  1. 时空复杂度

  2. 算法必须满足下列条件

    • Input(输入)
    • Output(输出)
    • Definiteness(确定性)
    • Finiteness(有穷性)
    • Effectiveness(有效性)
  3. 设计和分析过程

    • What is the problem we have to solve?
    • Does a solution exist?
    • Can we find a solution(algorithm), and is there more than one solution?
    • Is the algorithm correct?
    • How efficient is the algorithm?
  4. 基本时间复杂度排序
    在这里插入图片描述

  5. 时间复杂度的基本运算
    在这里插入图片描述

斐波那契数列

  1. 循环
  2. 递归
  3. 矩阵

chapter2-Recap of Data Structures

  1. 基本数据结构
    • set
    • linear:Arrays、Lists
    • tree:Binary trees、Heap、Multiway trees
    • graph
  2. 抽象数据类型(Abstract Data Type-ADT)
    在这里插入图片描述
    • Stacks:LIFO
    • Queues:FIFO
    • Lists
  3. 搜索
    • Sequential search
    • Binary search
  4. 排序
    在这里插入图片描述
  5. 哈希
    • Open addressing(开发地址):线性探索、二次探索
    • Chaining(链地址法或拉链法)
    • Binary Trees 二叉树
      • Preorder 前序遍历
      • Inorder 中序遍历
      • Postorder 后序遍历
      • Level-by-level 层次遍历
    • Binary Search Trees 二叉搜索树
    • AVL树:注意旋转
    • General Trees and Forests
    • Trie 单词查找树
    • Forest Traverse 森林遍历
    • Disjoint set 不相交集
    • Huffman Tree 哈夫曼树(最优二叉树)
    • 表示方法:邻接矩阵、邻接链表
    • 遍历:深搜、广搜
  6. 存在问题和最优化问题
    • 最优化问题转化为存在问题
    • Halting problem 停机问题,不可转化为存在问题
  7. 归约(Reducibility)
    • 一个问题A可以归约为问题B的含义是,可以用问题B的解法解决问题A,或者说,问题A可以“变成”问题B。
    • “问题A可归约为问题B”有一个重要的直观意义:B的时间复杂度高于或者等于A的时间复杂度。也就是说,问题A不比问题B难。
    • 归约具有传递性,如果问题A可归约为问题B,问题B可归约为问题C,则问题A可归约为问题C。
类型 定义 举例
P问题 有多项式时间的解决方法 最短路问题
最下生成树问题
分数背包问题
高斯消去问题
NP问题 不确定是否有多项式时间的解决方法,但是可以在多项式时间内验证
一个解是否正确
布尔可满足性问题
汉密尔顿回路
旅行商问题
顶点覆盖问题
NPC问题 存在这样一个NP问题,所有的NP问题都可以约化成它,属于NP问题,
且属于NP-hard问题。
布尔可满足性问题
汉密尔顿回路
旅行商问题
顶点覆盖问题
NPH问题 比NP问题都要难的问题。所有的NP问题都能约化
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值