理解算法的本质,学会总结规律

  • 算法不好理解,在于过于抽象
  • 通过动画展示,流程图辅助,将抽象的过程的步骤复现出来,加深理解
  • 循序渐进的学习
  • 你必须有足够大的动力,才能学习好算法

从实际的问题触发,通过解题,提升算法基础

  • 洞悉算法的本质
  • 寻找规律,并实现;从输入和输出的关系,找规律
  • 举一反三,延伸,改编,让一个技能点更加通用
  • 程序 = 算法 + 数据结构

建立自己的算法技术体系,有助于更好地阅读源码和设计编写一些复杂的工具

  • 问题抽象
  • 数学建模
  • 动态输入

算法能提高代码的速度

算法主题

  1. 数学
  2. 集合
  3. 字符串
  4. 搜索
  5. 排序
  6. 链表
  7. 加密
  8. 机器学习

算法范式

算法范式是一种通用方法,基于一类算法的设计。这是比算法更高的抽象,就像算法是比计算机程序更高的抽象。

  1. BF 算法
  2. 贪心法
  3. 分治法
  4. 动态编程
  5. 回溯法
  6. Branch & Bound

可视化算法

https://github.com/algorithm-visualizer/algorithm-visualizer
image.png

image.png
image.png

  1. 数据类型就好像螺帽一样,有多种接口方式
    1. 平口的、十字的、六角的等
  2. 螺丝刀就像是函数,或是用来操作这些螺丝的算法或代码
    1. 不同类型的螺帽(数据类型),需要为之适配一堆不同的螺丝刀(函数)

数据类型.png

map & reducer

map.png

JS算法

image.png

image.png