算法与数据结构汇总
如果debugging是一种消灭bug的过程,那编程就一定是把bug放进去的过程。
Edsger Dijkstra
前言
一起学习,一起成长,全篇优先用Java
实现,必要时会补上伪代码,其它语种再说。
如有错误或纰漏之处,请不吝赐教,谢谢!
写作背景
废话一段,可以直接略过
算法一直以来都是我的弱项,不仅是因为其枯燥无味,更多是因为自身的原因,没有坚持下来。
在工作中越来越发现,算法的重要性,并不是说在你在工作中一定能用到多少,而是算法思想的重要性!
经常性的发现,我需要完成一个东西,不论是工作中还是工作外,都发现短板:我不知道有什么更好的方式去实现!
从自身的角度,正式因为看到这种思想的重要性,想要全面的提升一下自己,自然系统的重新汇总学习是有必要的。
系列内容细则
本着汇总,尽量会写的详细,涉及面广一点。如果有时间,有能力的话,也会来写一写当下最新的东西。
既然写,能力有限,很多文章可能并不会做到100%原创,所以我会在每篇文章的结尾写上所有内容引用链接,必要的情况下会做好角标。
全篇系列中,所有涉及到的,个人贴的代码块,均会亲自跑一下。无法跑的代码,会已引用的方式贴出,必要的情况下会以图片的方式贴出。
内容概要[实时更新]
- 线性结构
- 数组
- 链表
- 栈
- 队列
- 串
- 非线性结构
- 二叉树
- 多维数组
- 广义表
- AVL树
- 伸展树
- 红黑树
- 哈夫曼树
- 堆
- 二叉堆
- 左倾堆
- 斜堆
- 二项堆
- 图
- 排序算法