Skip to content

Commit

Permalink
add:算法基础内容导航
Browse files Browse the repository at this point in the history
  • Loading branch information
haolin3 committed Jul 26, 2021
1 parent 84f7d7b commit 1c09ad4
Showing 1 changed file with 6 additions and 40 deletions.
46 changes: 6 additions & 40 deletions PART_1_算法基础/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,11 @@

为了大家更好的掌握数据结构和算法,我把基础知识整理成了一张思维导图,包括下面这些内容:

<img src="https://www.cxyhub.com/wp-content/uploads/2021/07/algorithm-c.png">

```
B树
<details><summary>显示更多</summary>
平衡的多叉树
平衡的多叉树
性质
根结点至少有两个孩子
每个非根结点至少有M/2(上取整)个孩子,至多有M个孩子
Expand All @@ -32,7 +34,7 @@ B树
为所有叶子节点增加一个链指针
所有关键字都在叶子节点出现
搜索
和B树基``本相同
和B树基本相同
特性
所有关键字都出现在叶子节点的链表中(稠密索引),且链表中的关键字恰好是有序的
不可能在叶子结点命中
Expand All @@ -41,12 +43,8 @@ B树
B*树
在B+树的非根和非叶子结点之间再增加指向兄弟的指针
子主题 2
</details>


哈希
<details><summary>显示更多</summary>
搜索(检索)
在数据元素集合中查找是否存在关键字等于某个给定关键字数据元素的过程
结果
Expand Down Expand Up @@ -117,10 +115,8 @@ B树
首先对关键码集合用散列函数计算散列地址,具有相同地址的关键码归于同一子集合,每个子集合称为一个桶,各个桶中的元素通过一个单链表链接起来,各链表的头结点组成一个向量,向量的元素个数与可能的桶数相同
布隆过滤器
当一个元素被加入集合时,通过k个散列函数将这个元素映射成一个位数组中的k个点,将它们置为1,检索时只要看是不是都是1,就可以,只要有一个零就不是,全是1,可能是
</details>
排序
<details><summary>显示更多</summary>
概念
就是将一组杂乱无章的数据按照一定的规律(升序或降序)组织起来
数据表
Expand Down Expand Up @@ -158,10 +154,8 @@ B树
非比较排序
计数排序
基数排序
</details>
<details><summary>显示更多</summary>
由顶点集合及顶点间关系组成的一种数据结构
顶点和边
顶点
Expand Down Expand Up @@ -223,10 +217,8 @@ B树
挨着找
单元最短路径
从在带权图的某一顶点出发,找出一条通往另一个顶点的最短路径,最短也即是沿路径各边的权值和最小
</details>
初识数据结构
<details><summary>显示更多</summary>
概念
数据
描述客观事物的符号,是计算机中可以操作的对象,能被计算机识别,并输入给计算机处理的符号集合
Expand Down Expand Up @@ -287,10 +279,8 @@ B树
时间效率高
且空间使用率低
简单性
</details>
算法的复杂度
<details><summary>显示更多</summary>
时间复杂度
空间复杂度
算法分析的分类
Expand All @@ -312,10 +302,8 @@ B树
递归总次数*每次递归次数
递归算法空间复杂度算法
N*每次递归空间大小
</details>
递归
<details><summary>显示更多</summary>
递归定义
若一个对象部分的包含它自己或者用它自己给自己定义,则称这个对象是递归的
递归的过程
Expand Down Expand Up @@ -343,10 +331,8 @@ B树
递归在解决某些问题的时候使得我们思考的方式的以简化,代码也更加简练,容易阅读
缺点
递归的实质就是自己调用自己,而函数的调用开销是很大的,系统要为每次函数调用分配空间存储空间,并将调用点信息压栈,而在函数的调用结束后,还要释放空间,弹栈恢复断点,如果递归方案的复杂度
</details>
<details><summary>显示更多</summary>
栈的概念
一种特殊的线性表,只允许从一端插入和删除数据
特点:后进先出
Expand All @@ -364,10 +350,8 @@ B树
括号匹配
逆波兰表达式
迷宫算法
</details>
队列
<details><summary>显示更多</summary>
只允许在一端插入数据,在另一端删除数据的特殊线性表
顺序队列
实现方式一
Expand Down Expand Up @@ -402,10 +386,8 @@ B树
消息队列
排队现象
网络数据传输
</details>
矩阵
<details><summary>显示更多</summary>
特殊矩阵
有很多值相同的元素或有许多零元素,且值相同的元素或零元素的分布有一定规律的矩阵
对称矩阵
Expand All @@ -423,10 +405,8 @@ B树
矩阵逆置
行列互换
快速逆置
</details>
初识树
<details><summary>显示更多</summary>
树的基本概念
由N个节点(N>=0)构成的集合
有一个特殊的节点,称为根节点,根节点没有前驱节点
Expand Down Expand Up @@ -486,10 +466,8 @@ B树
表示出第一个结点的第一个孩子结点,也表示出每个结点的下一个兄弟结点
树的应用
电脑的目录
</details>
树之二叉树
<details><summary>显示更多</summary>
概念
一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根节点加上两棵分别称为左子树和右子树的二叉树组成
特点
Expand Down Expand Up @@ -530,10 +508,8 @@ B树
若该结点的左子树非空,将该节点的左子树指针入队列
若该节点的右子树非空将该节点的右子树入队列
结束
</details>
线索化二叉树
<details><summary>显示更多</summary>
线索化概念
按照二叉树的遍历将二叉树导成一个线性序列
普通二叉树可能存在的问题
Expand Down Expand Up @@ -561,10 +537,8 @@ B树
线索二叉树
二叉树的结点加上线索的二叉树
对二叉树按照某种方式(前序、中序、后序)遍历使其称为线索二叉树的过程称为按照什么方法对二叉树进行线索化
</details>
<details><summary>显示更多</summary>
堆的概念
把所有的元素按照完全二叉树的方式存储在一个一维数组中并满足Ki<=K2*i+1且Ki<=K2*i+2(Ki>=K2*i+1且Ki>=K2*i+2),这个堆称为最小堆(最大堆)
堆的分类
Expand All @@ -582,10 +556,8 @@ B树
堆的删除
堆的应用
优先级队列
</details>
Huffman树
<details><summary>显示更多</summary>
概念
路径
路径长度
Expand All @@ -602,10 +574,8 @@ Huffman树
等长编码
不等长编码
文件压缩
</details>
二叉搜索树
<details><summary>显示更多</summary>
性质
如果左子树不为空,则左子树上所有节点的值都小于根结点的值
它的右子树不为空,则右子树上所有节点的值都大于根结点的值
Expand Down Expand Up @@ -633,10 +603,8 @@ Huffman树
在它的右子树中寻找中序下的第一个结点(关键码最小),用它的值填补到被删除节点中,再来处理该结点的删除问题
二叉搜索树性能分析
最坏情况下,平均查找长度为O(n)一般情况下平均长度为O(lgn)
</details>
AVL树
<details><summary>显示更多</summary>
AVL树性质
它的左右子树都是AVL树
左子树和右子树高度之差(简称平衡因子)的绝对值不超过1(-1、0、1)
Expand All @@ -663,10 +631,8 @@ AVL树
如果q的平衡因子为0,执行单循环恢复parent
如果q的平衡因子与parent平衡因子(正负)号相同,则执行一个单循环恢复parent
如果q的平衡因子与parent平衡因子(正负)号相反,则执行一个双旋转恢复parent
</details>
红黑树
<details><summary>显示更多</summary>
概念
红黑树是一棵二叉搜索树,它在每个节点上增加了一个存储位来表示结点的颜色,保证最长路径不超过最短路径的两倍,近似平衡
性质
Expand All @@ -688,4 +654,4 @@ AVL树
linux 内核
其他一些库
红黑树和AVL树的比较
</details>
```

0 comments on commit 1c09ad4

Please sign in to comment.