01 ~ 10篇 | 11 ~ 20篇 |
---|---|
01 数据结构与算法总览 | 11 二分查找 |
02 复杂度分析 | 12 动态规划 |
03 数组、链表、跳表 | 13 字典树和并查集 |
04 栈、队列、优先队列、双端队列 | 14 高级搜索 |
05 哈希表、映射、集合 | 15 红黑树和AVL树 |
06 树、二叉树、二叉搜索树 | 16 位运算 |
07 泛型递归、树的递归 | 17 布隆过滤器和LRU缓存 |
08 分治、回溯 | 18 排序算法 |
09 深度优先搜索和广度优先搜索 | 19 高级动态规划 |
10 贪心算法 | 20 字符串算法 |
数据结构主要分为三大块:一维数据结构、二维数据结构、特殊数据结构
可以分为基础和高级两大类
通常由一维数据结构泛化产生
可以简单理解为:
当一个一维的链表的分叉有两个的时候,
它就变成了一个二维的数据结构,相当于树结构
- 在树的基础上加 了很多特殊判断和约定条件
- 二叉搜索树:它的根节点大于左子树且小于它右子树的全部节点
- 二叉搜索树的一些特殊结构:red-black tree,AVL
例:
- 二叉搜索树 binary search tree(red-black tree,AVL),
- 堆 heap,并查集 disjoint set,字典树 Trie,etc
主要是用于工程中特定的情景
这里的算法不是算法工程师title对应的那个算法
本文及本系列文章所指皆为《数据机构与算法》里的算法,属于计算机科学的一门课程,国外的高校会拆成两门课 《数据结构》 和《算法》,有本科阶段的也有研究生阶段的,本科和研究生阶段的主要是难度和广度不同 ,国内会把这两门课连着开,或者放在一起开,最主要是这两门课在学习中是分不开的:
算法工程师对应的算法主要就是指机器学习算法
基础: 公理 | 基石, 任何的高阶算法都会转化为if-else/while/recursion
高阶: 找到问题的重复单元进行泛化