《算法图解》笔记简单整理

《算法图解》

其实读着《大话数据结构》便觉得 这样子挺麻烦的……试试吧还是

不过这样搭配cal Newport的摩斯密码法其实挺有意思

算法图解这本书还是很不错的 简单易懂

1 算法简介

  • 二分查找

  • 大O表示法

    • 展示最糟情况下的所需时间
  • 旅行商问题

    旅行商将前往n个城市 从某处到某处都需要不同的里程 试找出最少的路程方法

    解决这个问题 如若直接遍历 复杂度为O(n)=n!

2 选择排序

  • 元素的位置称为__索引__
属性 数组 链表
读取 O(1) O(n)
插入 O(n) O(1)
删除 O(n) O(1)
  • 选择排序

3 递归

  • 基线条件
  • 递归条件

4 快速排序

  • 分而治之
    • 找出基线条件
    • 缩小问题 直至符合基线条件
    • (涉及数组的递归 其基线条件一般为数组为空或只含一个元素
  • 快速排序
  • 平均情况 vs 最糟情况

5 散列表

  • 散列函数
  • 散列表
    • 模拟映射
    • 防止重复
    • 缓存数据
  • 冲突(解决方法
    • 较低的填装因子
    • 良好的散列函数

6 广度优先搜索

  • 图的代码实现
  • 用deque实现广度优先搜索
    • 设立flag标记有无检查过
  • 拓扑排序

7 狄克斯特拉算法

计算网的最小路径

要求:

  • 不能有负权边

  • 不能构成环

    (否则:弗洛伊德算法

8 贪婪算法

  • 近似算法
  • 差集
  • NP完全问题(只能遍历 而没有一种好的算法

9 动态规划

必须每个子问题都是__离散__的才能有效

  • 最长公共子串

  • 最长公共子序列

10 K最近邻算法

  • 余弦相似度
  • 分类(大数据推送hhh
  • 回归(预测你对此视频的评分hhh

11 other

  • 反向索引
  • 傅里叶变换
  • 并行算法
  • MapReduce
    • 映射函数
    • 归并函数
  • 布隆过滤器
  • SHA算法(局部不敏感
  • 局部敏感的散列算法
  • 线性规划(一生之敌

《算法图解》笔记简单整理
http://baokker.github.io/2021/07/19/《算法图解》笔记简单整理/
作者
Baokker
发布于
2021年7月19日
更新于
2022年5月29日
许可协议