数据结构和算法概览

上大学的时候,因为是软件开发专业,所以数据结构和算法是必修课,工作这么多年,在很多优秀的框架里面,也能看到数据结构和算法的使用,但是自己一直没有认真整理过,所以打算从这篇开始,在工作闲暇之余,把自己对下面这些内容的理解,都分篇整理一下。虽然这方面网上有很多文章了,但是为了方便自己的查阅和理解,还是自己整理的比较方便。

1.复杂度

  • 时间复杂度
  • 空间复杂度

2.线性数据结构

  • 动态数组(Array)
  • 链表(LinkedList)
    • 单向链表
    • 双向链表
    • 循环链表(单向循环链表、双向循环链表)
    • 静态链表
  • 栈(Stack)
  • 队列(Queue)
  • 哈希表(HashTable)
  • 位图(非重点)

3.树形数据结构

  • 二叉树(真二叉树、满二叉树、完全二叉树)
  • 二叉搜索树(Binary Search Tree、BST)
  • 平衡二叉搜索树(Balanced Binary Search Tree、BBST)
    • AVL树
    • 红黑树(Red Black Tree)
  • B树(B+树)
  • 集合(TreeSet)
  • 映射(TreeMap)
  • 哈夫曼树
  • Trie

4.线性+树形数据结构

  • 集合(HashSet)
  • 映射(HashMap、LinkedHashMap)
  • 二叉堆(Binary Heap)
  • 优先级队列(Priority Queue)
  • 并查集(Union Find)

5.图(Graph)

  • 无向图(Undirected Graph)
  • 有向图(Directed Graph)
  • 有权图(Weighted Graph)
  • 图的广度优先搜索、深度优先搜索

A.10大排序算法

  • 冒泡排序(Bubble Sort)
  • 选择排序(Selection Sort)
  • 插入排序(Insertion Sort)
  • 归并排序(Merge Sort)
  • 快速排序(Quick Sort)
  • 希尔排序(Shell Sort)
  • 堆排序(Heap Sort)
  • 计数排序(Counting Sort)
  • 基数排序(Radix Sort)
  • 桶排序(Bucket Sort)

B.五大查找算法

  • 顺序查找
  • 二分查找
  • 插值查找
  • 斐波那契查找
  • 树表查找

C.六类算法思想

  • 递归
  • 回溯
  • 贪心
  • 分治
  • 动态规划
  • 分支界限

D.其他

  • 字符串KMP算法
  • Trie字典树

END。
我是小侯爷。
在帝都艰苦奋斗,白天是上班族,晚上是知识服务工作者。
如果读完觉得有收获的话,记得关注和点赞哦。
非要打赏的话,我也是不会拒绝的。

你可能感兴趣的:(数据结构和算法概览)