最开始是在B站看的左神的算法视频,决定开始整理算法学习笔记。后面又开始接触到labuladong和代码随想录,
虽然大神们都有很多总结,但是要融会贯通还是得靠刻意练习。

第一章:基础概念

1. 复杂度分析(时间复杂度、空间复杂度)
2. 位运算
3. 其他的一些概念 (常数操作、、对数器、比较器、master公式)

第二章:排序和搜索

1. 递归和迭代(阶乘、反转字符串、8皇后问题、汉诺塔)
2. 排序(冒泡、插入、选择、快速、归并、堆排序)
3. 搜索(DFS、BFS、二分查找)

第三章:数据结构基础篇

1. 数组(字符串子串搜索之KMP算法)
2. 链表(单链表、双链表、环形链表、快慢指针)
3. (先进先出、有效的括号、可做DFS实现)
4. 队列(后进先出、优先级队列、双端队列、可做BFS实现)

第四章:数据结构进阶篇

1. 哈希表(哈希函数、哈希表实现、一致性哈希算法)
2. 二叉树(二叉树遍历(BFS、DFS)、平衡二叉树、二叉搜索树、满二叉树、完全二叉树、序列化和反序列化、前缀树、红黑树)
3. 堆(HeapInsert和Heapify、数组实现堆、优先级队列)
4. 位图(Java实现位图、Linux系统权限设计)

第五章:数据结构高级篇

1. 图(定义、存储方式、邻接表实现、图的创建、遍历、拓扑排序、最小生成树之Prim和Kruskal算法、最短路径之Dijkstra算法)
2. 跳表
3. 布隆过滤器(亿级URL黑名单判断设计)
4. 并查集
5. 单调栈

算法进阶

1. 回溯、暴力递归
2. 动态规划
3. 贪心算法

索引

红黑树、B树、B+树