You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
obsidian-sync/日常学习/算法与数据结构.md

1.5 KiB

一、数据结构

  1. 单链表(带头结点、不带头结点)设计与实现(增删改查),双链表设计与实现
  2. 栈设计与实现(数组和链表),队列设计与实现(数组和链表)
  3. 二叉树概念学习,二叉树前序、中序、后序遍历递归、非递归实现 ,层序遍历
  4. 二叉排序树设计与实现(插入删除)
  5. 堆(优先队列、堆排序)
  6. AVL(平衡)树设计与实现(四种自旋方式理解实现)
  7. 伸展树、红黑树原理概念理解
  8. B、B+原理概念理解
  9. 哈夫曼树原理概念理解(贪心策略)
  10. 哈希(散列表)原理概念理解(几种解决哈希冲突方式)
  11. 并查集/不相交集合(优化和路径压缩)
  12. 图论拓扑排序
  13. 图论dfs深度优先遍历、bfs广度优先遍历
  14. 最短路径Dijkstra算法、Floyd算法、spfa算法
  15. 最小生成树prim算法、kruskal算法
  16. 其他数据结构线段树、后缀数组等等

二、经典算法

  1. 递归算法(求阶乘、斐波那契、汉诺塔问题)
  2. 二分查找
  3. 分治算法(快排、归并排序、求最近点对等问题)
  4. 贪心算法(使用较多,区间选点问题,区间覆盖问题)
  5. 常见动态规划(LCS(最长公共子序列) LIS(最长上升子序列)背包问题等等)
  6. 回溯算法(经典八皇后问题、全排列问题)
  7. 位运算常见问题(参考剑指offer和LeetCode问题)
  8. 快速幂算法(快速求幂乘、矩阵快速幂)
  9. kmp等字符串匹配算法
  10. 一切其他数论算法(欧几里得、拓展欧几里得、中国剩余定理等等)