〇、前言
不知何时起,江湖上出现了一个门派,名曰“计算机技术”。其以功法多样、内功高深以及有教无类而闻名江湖。各路侠客,闻名而至。然,多数人只热衷于功法,而畏怯其内功难度,避而不修。殊不知,功法和内功乃相辅相成。。。
一、为何学
- 更好地使用Java类库,Java类库封装了大量的数据结构和算法,并做了优化。学习数据结构与算法可以更好地理解Java类库,进而能从中学习并更好地使用。比如,什么情况下用ArrayList好,什么情况下用LinkedList好。又比如,要用一个类,需要注意什么等等。
- 写出高效的代码,比如,同样根据RPC的原理,写出的RPC框架,为什么有的人写出来自己都不想用,而有的人写出来,开源给千千万万的人用,甚至被Apache收录。
- 更好地阅读开源框架的源码,以便更深地理解其原理和设计。引用一句话:内行看门道,外行看热闹。
二、怎么学
- 打蛇打七寸,抓住常用的;
- 学透彻,举一反三,深入理解;
- 使用场景,注意事项,学来就是用的;
- 边学边练,刷必要的题,如LeetCode上的;
- 创建一个GitHub工程,随时记录常用的数据结构和算法,逐渐沉淀;
某个算法很难理解时,借助一个简单的例子,去理思路是个很好的办法。
三、内容大纲
上面配图是用ProcessOn所画,点击图片可访问原文件,如果喜欢,请点个赞。
1、数据结构
- 数据结构与算法系列之数据结构:数组
- 数据结构与算法系列之数据结构:链表
- 数据结构与算法系列之数据结构:栈
- 数据结构与算法系列之数据结构:队列
- 数据结构与算法系列之数据结构:哈希表
- 数据结构与算法系列之数据结构:树
- 数据结构与算法系列之数据结构:堆
- 数据结构与算法系列之数据结构:图
- 数据结构与算法系列之数据结构:跳表
- 数据结构与算法系列之数据结构:位图
- 数据结构与算法系列之数据结构:字符串
2、算法思想
- 数据结构与算法系列之算法思想:分治算法
- 数据结构与算法系列之算法思想:贪心算法
- 数据结构与算法系列之算法思想:动态规划
- 数据结构与算法系列之算法思想:回溯算法
- 数据结构与算法系列之算法思想:枚举算法
- 数据结构与算法系列之算法思想:摊还分析
3、常用算法
- 数据结构与算法系列之常用算法:排序算法
- 数据结构与算法系列之常用算法:查找算法
- 数据结构与算法系列之常用算法:搜索算法
- 数据结构与算法系列之常用算法:字符串匹配算法
- 数据结构与算法系列之常用算法:LRU算法和LFU算法
- 数据结构与算法系列之常用算法:负载均衡算法
- 数据结构与算法系列之常用算法:一致性哈希算法
- 数据结构与算法系列之常用算法:Snowflake算法
- 数据结构与算法系列之常用算法:蓄水池抽样算法
四、总结
如果想在技术这条路上走的更远,数据结构与算法是必须迈过的门槛。