对于数据结构与算法的学习,“学好”需要掌握数据结构与算法的核心知识;“学博”需要提升算法思维,训练解决实际开发工作难题的强能力;“学精”需要了解开源框架、底层系统的设计原理,提升工作实战技能。


完整知识框架

1. 数据结构

按逻辑分类

  • 集合(无逻辑关系);

  • 线性结构(线性表):一维数组、队列、栈;

  • 非线性结构:树、图、多维数组。

按存储结构分类

  • 顺序存储结构;

  • 链式存储结构;

  • 索引存储结构;

  • 散列存储结构。

2. 常用算法

排序,查找,数值计算方法,字符串处理方法,初级压缩算法,递归,图的相关计算等。

3. 算法与数据结构的关系

算法效率,算法设计,算法描述(流程图,伪代码,决策表)等。

图:数据结构与算法的完整知识框架


三个阶段,学习建议

1、先掌握数据结构与算法的基础知识

第一阶段。学会各种数据结构的基本操作,取值、查找、插入、删除等。理解各种数据结构的定义,操作方法,通过看代码,尝试自己动手上机运行,逐渐掌握基本操作。


初学时,想理解数据结构,可以试着画图,通过画图形象表达,更能体会其中的数据结构关系。因此,初学阶段学习利器:画图,理解,画图。


2、提升解决实际开发工作中问题的能力

第二阶段。可以尝试利用数据结构解决一些实际问题了,先学经典应用问题的解决方法,体会数据结构的使用方法,然后再结合实际,独立设计数据结构解决问题。


要想熟练应用就必须做大量的应用实践,从解决问题中体会其中的方法。最好进行专项练习,比如线性表问题,二叉树问题,图问题,该阶段学习利器:做题,反思,做题。


3、学习开源框架、底层系统的设计原理,提升工作实战技能

第三阶段。结合 Redis、Disruptor 这样的开源项目,剖析它们背后的数据结构和算法,提升读懂源码的能力(JDK 很多源码,不乏大量的数据结构,例如大家喜闻乐见的面试题 HashMap)。


对于初学者,学习推荐

对于初学者,推荐王争老师的数据结构与算法课程。走心的说,这个专栏应该是市面上最适合初学者入门学习的专栏,王争老师作为前 Google 工程师,深入研究了算法十几年,根据自己的实际工作经验,结合了自己的心得体会,写在了《数据结构与算法之美》专栏中

整个专栏涵盖 100+ 真实项目场景案例,王争还手绘了不少详解图(共 300 多张),帮助学习者理解核心概念和实现过程,展示每个知识点的框架逻辑。从基础到思维再到实战,中间穿插了阶段性的练习和总结,让晦涩难懂的算法变得轻松有趣。


©著作权归作者所有:来自51CTO博客作者mb5ff97f7b72697的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. CV学习笔记(二十三):卡号格式化匹配
  2. CV学习笔记(二十六):NMS非极大值抑制算法
  3. 数据结构与算法—小白也能搞懂二叉排序(查找)树
  4. 从阶乘、斐波那契、汉诺塔剖析彻底搞懂递归算法
  5. 数据结构与算法—队列(搞懂最常用数据结构之一)
  6. 数据结构与算法—栈详解(看完面试考试再也不怕了)
  7. 一文多图搞懂数据结构的双链表!
  8. 数据结构于算法—线性表详解(顺序表、链表)
  9. 数据结构与算法—绪论

随机推荐

  1. 第一行代码笔记1
  2. Android 强大的图片加载缓存— Glide
  3. Android 启动流程简介
  4. Android 碎屏效果 (Crack Screen,击碎屏
  5. Android设备定制为永不锁屏
  6. Android(安卓)OpenGL ES(五):GLSurfaceView
  7. 【Android】入门案例(二)——JDBC连接MyS
  8. {转}实现谷歌Android摄像头拍照 2010-06-
  9. [Android]Fragment生命周期
  10. android应用程序跳转到系统的各个设置页