算法学习路线图
算法的学习挑战。以下带链接的点,都会有相应的学习笔记,如果没有,说明我还没有学到那喽。
Tip: 学习算法前最好把 java 的基础语法过一遍,以防看不懂算法例子。
算法思想
算法效率分析
数据结构
线性表
哈希表/散列表 (Hash Table)
- 散列函数
- 碰撞解决
图
- 图的存储结构和基本操作(建立,遍历,删除节点,添加节点)
- 最小生成树
- 拓扑排序
- 关键路径
- 最短路径: Floyd,Dijkstra,bellman-ford,spfa
树
字符串
算法
-
-
交换排序算法
- 冒泡排序
- 插入排序
- 选择排序
- 希尔排序
- 快速排序
- 归并排序
- 堆排序
- 与排序相关的问题(优先队列、选举、归并)
-
线性排序算法
- 桶排序
-
-
查找
- 顺序表查找:顺序查找
- 有序表查找:二分查找
- 分块查找: 块内无序,块之间有序;可以先二分查找定位到块,然后再到块中顺序查找
- 动态查找: 二叉排序树,AVL树,B- ,B+ (这里之所以叫 动态查找表,是因为表结构是查找的过程中动态生成的)
- 哈希表: O(1)
-
前缀树
-
图问题
-
组合问题
-
几何问题
-
数值问题
觉得文章不错就支持一下呗~