三羊

三羊的小站

数据结构和算法-前端必会知识点

April 26, 2019/「 algorithmjavascript / Edit on Github ✏️

数据结构和算法,在程序员的知识体系中应该是占据非常重要的位置,特别是对于后端工程师。对于一个前端仔,确实很少用到复杂的数据结构和算法,更多的是与前端框架,项目配置,页面性能,浏览器兼容等打交道。前端技术飞速发展,前端框架层出不穷,现在很多人都感叹”学不动了”。为何会感觉学不动了呢?其实是基本功没有学扎实,很难理解新技术的本质。与其学习官方API文档,不如学习基础知识,比如数据结构和算法,设计模式等。其实,不管何种编程语言或则框架技术,底层实现,一定是会用到某些数据结构,一定会用到某些算法。比如,我们常说的event loop不就是用到了队列,栈等数据结构。所以,对于一个有追求的前端仔,学习数据结构和算法,对于提升自己,训练抽象思维模式,还是有很大益处的。

数据结构和算法,安排在了我今年的学习计划清单中。在大学时期,学过这么课程,当时没有好好学,如今准备花大量时间来认认真真,好好地学习和温故一下,出来混,迟早是要还的。在学习过程中,我会新建一个项目,动手去实现一些数据结构和算法,不能光看不练,只有自己实现一遍,才会真正明白其中细节和原理,也会刷刷leetcode题目

对于一个前端工程师,掌握数组,链表,栈,队列,散列表,二叉树,堆,图,排序算法等就基本够用了,主要是学习一些思维模式,在实际应用中遇到问题,可以站在更高的位置去思考,去找出最优解。在平常工作中,不能只满足写出一两个页面,用react实现一个系统,还要多思考底层原理性东西,多想想原因。这样,既能找到乐趣,也能更好的完成功能。

  • 基础数据结构:✅数组,✅链表,✅栈,✅队列,✅散列表;
  • 跳表的原理以及实现;
  • 树:✅二叉树,✅二叉搜索树,平衡二叉搜索树(AVL),红黑树;
  • 树的遍历:✅中序,✅先序,✅后序;树的搜索;
  • 堆:✅小顶堆,✅大顶堆;堆的应用:✅优先级队列,求Top N问题;
  • 图:✅邻接矩阵法,✅邻接表法;
  • 图的遍历:✅深度优先(DFS),✅广度优先(BFS);
  • 最短路径,Dijkstra;
  • 排序算法:✅冒泡排序,✅插入排序,✅选择排序,✅快速排序,✅归并排序,✅堆排序,桶排序,计数排序,基数排序;
  • 算法思想:✅贪心,✅回溯,✅分治,动态规划

学习资料准备如下:

若有收获,小额鼓励