/js-algorithm

javascript 版本手撕算法,前端进阶必备!

Primary LanguageJavaScriptMIT LicenseMIT

js-algorithm

2021年7月初,不知为何突然对数据结构与算法产生了很大的兴趣,之前学习都很刻意,不到几天就坚持不下来了,没能养成坚持学习算法的好习惯。整得每次几乎都要从头再来。

这一次,我想一次性彻底打破这个瓶颈,再冲一把,毕竟想往上走,这是基本功,前几天在学习链表的时候发现很有趣的一点,链表和原型链很像(__proto__ 就像链表中的next 指针 ),和前端领域相关内容结合着感觉这东西好像更好理解,更有趣了。

学习算法的先决条件:自己有决心并且付出精力!!!

本次学习算法前期时间打算坚持以周为单位,每周只去学习一个数据结构或者算法。这样做的目的是为了时间充裕也不会造成很大压力去学习,想完全吃透内容,慢就是快!

学习进度安排

主线计划

  • 链表 (第一周:7.12 - 7.18)

  • 数组 (第二周:7.19 - 7.25)

  • 栈(第三周:7.26 - 8.1)

  • 队列(第四周:8.2 - 8.8)

  • 二叉树(第五周:8.9 - 8.15)

  • 递归(8.16 - 8.22)

  • 遍历 DFS&BFS(8.23 - 8.29)

  • 分治算法(8.30 - 9.5)

  • 回溯算法(9.6 - 9.12)

  • 排序算法(9.13 - 9.19)

  • 动态规划(9.20 - 9.26 )

  • 贪心算法(9.27 - 10.3)

支线计划

支线计划是在主线任务完成的情况下,补充拓展内容。暂时不列时间,先将内容列出来。

  • 二分查找
  • 跳表
  • 散列表
  • 哈希算法
  • Trie 树
  • 递归树
  • 堆和堆排序