本文用于自我学习(面试突击),对我自己比较熟悉的部分或不重要的部分,会有所略写。所以可能不适合大家阅读(不过也没啥人读)。
这里推荐一篇文章,也是我学习时参考的文章:算法与数据结构
数据结构有哪些:
我熟悉的:数组,链表,栈,队列,二叉树
有所了解的:堆,图,字典树
不会的:散列表,跳表
其中,数组,栈,队列,链表(跳表)属于 线性表,与散列表相对。
二叉树,字典树树,堆,都属于树。树属于图的一种特殊形式。
算法有哪些:
1.字符串匹配算法(数组)
2.查找(主要是二分法)(数组,链表)
3.十大排序算法(冒泡,选择,插入,希尔,归并,堆,快速,计数,基数,桶)(数组,树,堆)
4.递归算法(树,图等)
5.搜索(深度DFS,广度BFS),常用于二叉树与拓扑排序(树,栈,队列,图)
6.基本算法思想(动态规划,贪心思想,回溯算法,分治算法,枚举算法)(数组)
7.哈希算法(HashMap)
8.双指针(数组,链表)
9.拓扑排序(用到搜索)(图)
10.并查集(图)
以上红色为重点,黄色为次重点,绿色为用到的数据结构
10个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。
原文:https://www.cnblogs.com/augenstern/p/13069414.html