Skip to content

Commit 1c09ad4

Browse files
author
haolin3
committed
add:算法基础内容导航
1 parent 84f7d7b commit 1c09ad4

File tree

1 file changed

+6
-40
lines changed

1 file changed

+6
-40
lines changed

PART_1_算法基础/README.md

+6-40
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,11 @@
1515

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

18+
<img src="https://www.cxyhub.com/wp-content/uploads/2021/07/algorithm-c.png">
19+
20+
```
1821
B树
19-
<details><summary>显示更多</summary>
20-
平衡的多叉树
22+
平衡的多叉树
2123
性质
2224
根结点至少有两个孩子
2325
每个非根结点至少有M/2(上取整)个孩子,至多有M个孩子
@@ -32,7 +34,7 @@ B树
3234
为所有叶子节点增加一个链指针
3335
所有关键字都在叶子节点出现
3436
搜索
35-
和B树基``本相同
37+
和B树基本相同
3638
特性
3739
所有关键字都出现在叶子节点的链表中(稠密索引),且链表中的关键字恰好是有序的
3840
不可能在叶子结点命中
@@ -41,12 +43,8 @@ B树
4143
B*树
4244
在B+树的非根和非叶子结点之间再增加指向兄弟的指针
4345
子主题 2
44-
</details>
45-
46-
4746
4847
哈希
49-
<details><summary>显示更多</summary>
5048
搜索(检索)
5149
在数据元素集合中查找是否存在关键字等于某个给定关键字数据元素的过程
5250
结果
@@ -117,10 +115,8 @@ B树
117115
首先对关键码集合用散列函数计算散列地址,具有相同地址的关键码归于同一子集合,每个子集合称为一个桶,各个桶中的元素通过一个单链表链接起来,各链表的头结点组成一个向量,向量的元素个数与可能的桶数相同
118116
布隆过滤器
119117
当一个元素被加入集合时,通过k个散列函数将这个元素映射成一个位数组中的k个点,将它们置为1,检索时只要看是不是都是1,就可以,只要有一个零就不是,全是1,可能是
120-
</details>
121118
122119
排序
123-
<details><summary>显示更多</summary>
124120
概念
125121
就是将一组杂乱无章的数据按照一定的规律(升序或降序)组织起来
126122
数据表
@@ -158,10 +154,8 @@ B树
158154
非比较排序
159155
计数排序
160156
基数排序
161-
</details>
162157
163158
164-
<details><summary>显示更多</summary>
165159
由顶点集合及顶点间关系组成的一种数据结构
166160
顶点和边
167161
顶点
@@ -223,10 +217,8 @@ B树
223217
挨着找
224218
单元最短路径
225219
从在带权图的某一顶点出发,找出一条通往另一个顶点的最短路径,最短也即是沿路径各边的权值和最小
226-
</details>
227220
228221
初识数据结构
229-
<details><summary>显示更多</summary>
230222
概念
231223
数据
232224
描述客观事物的符号,是计算机中可以操作的对象,能被计算机识别,并输入给计算机处理的符号集合
@@ -287,10 +279,8 @@ B树
287279
时间效率高
288280
且空间使用率低
289281
简单性
290-
</details>
291282
292283
算法的复杂度
293-
<details><summary>显示更多</summary>
294284
时间复杂度
295285
空间复杂度
296286
算法分析的分类
@@ -312,10 +302,8 @@ B树
312302
递归总次数*每次递归次数
313303
递归算法空间复杂度算法
314304
N*每次递归空间大小
315-
</details>
316305
317306
递归
318-
<details><summary>显示更多</summary>
319307
递归定义
320308
若一个对象部分的包含它自己或者用它自己给自己定义,则称这个对象是递归的
321309
递归的过程
@@ -343,10 +331,8 @@ B树
343331
递归在解决某些问题的时候使得我们思考的方式的以简化,代码也更加简练,容易阅读
344332
缺点
345333
递归的实质就是自己调用自己,而函数的调用开销是很大的,系统要为每次函数调用分配空间存储空间,并将调用点信息压栈,而在函数的调用结束后,还要释放空间,弹栈恢复断点,如果递归方案的复杂度
346-
</details>
347334
348335
349-
<details><summary>显示更多</summary>
350336
栈的概念
351337
一种特殊的线性表,只允许从一端插入和删除数据
352338
特点:后进先出
@@ -364,10 +350,8 @@ B树
364350
括号匹配
365351
逆波兰表达式
366352
迷宫算法
367-
</details>
368353
369354
队列
370-
<details><summary>显示更多</summary>
371355
只允许在一端插入数据,在另一端删除数据的特殊线性表
372356
顺序队列
373357
实现方式一
@@ -402,10 +386,8 @@ B树
402386
消息队列
403387
排队现象
404388
网络数据传输
405-
</details>
406389
407390
矩阵
408-
<details><summary>显示更多</summary>
409391
特殊矩阵
410392
有很多值相同的元素或有许多零元素,且值相同的元素或零元素的分布有一定规律的矩阵
411393
对称矩阵
@@ -423,10 +405,8 @@ B树
423405
矩阵逆置
424406
行列互换
425407
快速逆置
426-
</details>
427408
428409
初识树
429-
<details><summary>显示更多</summary>
430410
树的基本概念
431411
由N个节点(N>=0)构成的集合
432412
有一个特殊的节点,称为根节点,根节点没有前驱节点
@@ -486,10 +466,8 @@ B树
486466
表示出第一个结点的第一个孩子结点,也表示出每个结点的下一个兄弟结点
487467
树的应用
488468
电脑的目录
489-
</details>
490469
491470
树之二叉树
492-
<details><summary>显示更多</summary>
493471
概念
494472
一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根节点加上两棵分别称为左子树和右子树的二叉树组成
495473
特点
@@ -530,10 +508,8 @@ B树
530508
若该结点的左子树非空,将该节点的左子树指针入队列
531509
若该节点的右子树非空将该节点的右子树入队列
532510
结束
533-
</details>
534511
535512
线索化二叉树
536-
<details><summary>显示更多</summary>
537513
线索化概念
538514
按照二叉树的遍历将二叉树导成一个线性序列
539515
普通二叉树可能存在的问题
@@ -561,10 +537,8 @@ B树
561537
线索二叉树
562538
二叉树的结点加上线索的二叉树
563539
对二叉树按照某种方式(前序、中序、后序)遍历使其称为线索二叉树的过程称为按照什么方法对二叉树进行线索化
564-
</details>
565540
566541
567-
<details><summary>显示更多</summary>
568542
堆的概念
569543
把所有的元素按照完全二叉树的方式存储在一个一维数组中并满足Ki<=K2*i+1且Ki<=K2*i+2(Ki>=K2*i+1且Ki>=K2*i+2),这个堆称为最小堆(最大堆)
570544
堆的分类
@@ -582,10 +556,8 @@ B树
582556
堆的删除
583557
堆的应用
584558
优先级队列
585-
</details>
586559
587560
Huffman树
588-
<details><summary>显示更多</summary>
589561
概念
590562
路径
591563
路径长度
@@ -602,10 +574,8 @@ Huffman树
602574
等长编码
603575
不等长编码
604576
文件压缩
605-
</details>
606577
607578
二叉搜索树
608-
<details><summary>显示更多</summary>
609579
性质
610580
如果左子树不为空,则左子树上所有节点的值都小于根结点的值
611581
它的右子树不为空,则右子树上所有节点的值都大于根结点的值
@@ -633,10 +603,8 @@ Huffman树
633603
在它的右子树中寻找中序下的第一个结点(关键码最小),用它的值填补到被删除节点中,再来处理该结点的删除问题
634604
二叉搜索树性能分析
635605
最坏情况下,平均查找长度为O(n)一般情况下平均长度为O(lgn)
636-
</details>
637606
638607
AVL树
639-
<details><summary>显示更多</summary>
640608
AVL树性质
641609
它的左右子树都是AVL树
642610
左子树和右子树高度之差(简称平衡因子)的绝对值不超过1(-1、0、1)
@@ -663,10 +631,8 @@ AVL树
663631
如果q的平衡因子为0,执行单循环恢复parent
664632
如果q的平衡因子与parent平衡因子(正负)号相同,则执行一个单循环恢复parent
665633
如果q的平衡因子与parent平衡因子(正负)号相反,则执行一个双旋转恢复parent
666-
</details>
667634
668635
红黑树
669-
<details><summary>显示更多</summary>
670636
概念
671637
红黑树是一棵二叉搜索树,它在每个节点上增加了一个存储位来表示结点的颜色,保证最长路径不超过最短路径的两倍,近似平衡
672638
性质
@@ -688,4 +654,4 @@ AVL树
688654
linux 内核
689655
其他一些库
690656
红黑树和AVL树的比较
691-
</details>
657+
```

0 commit comments

Comments
 (0)