算法
未读
2.5 快速排序(Quick sort)
# 2.5 快速排序(Quick sort) #### 一. 定义 快速排序(Quick sort)是对冒泡排序的一种改进。基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归
算法
未读
2.3 插入排序(Insertion Sorting)
# 2.3 插入排序(Insertion Sorting) #### 一. 定义 插入式排序属于内部排序法,是对于欲排序的元素以插入的方式找寻该元素的适当位置,以达到排序的目的。 插入排序(Insertion Sorting)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表
算法
未读
2.7 堆排序(Heap Sort)
# 2.7 堆排序(Heap Sort) #### 一. 定义 \*\*堆排序\*\*是利用堆这种数据结构而设计的一种排序算法,堆排序是选择排序的改进,它的最坏,最好,平均时间复杂度均为\*\*O(nlogn)\*\*,它也是\*\*不稳定排序\*\*。 堆排序是具有以下性质的完全二叉树: \* 每
算法
未读
4. 哈希表(Hash Table)
# 4. 哈希表(Hash Table) \> \*\*一般哈希表都是用来快速判断一个元素是否出现集合里。\*\* \> \> 例如要查询一个名字是否在这所学校里。 \> \> 要枚举的话时间复杂度是O(n),但如果使用哈希表的话, 只需要O(1)就可以做到。 \> \> 我们只需要初始化把这所学校
算法
未读
5.0 树(Tree)
# 5.0 树(Tree) #### 一. 定义 !\[在这里插入图片描述\](https://img-blog.csdnimg.cn/20210222102217926.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shado
算法
未读
5.2 哈夫曼树(Huffman Tree)
# 5.2 哈夫曼树(Huffman Tree) #### 一. 定义 给定n个权值作为n个叶子结点,构造一棵二叉树,若该\*\*树的带权路径长度(wpl)\*\*达到最小,称这样的二叉树为\*\*最优二叉树\*\*,也称为\*\*哈夫曼树(Huffman Tree)\*\*。哈夫曼树是带权路径长度
算法
未读
5.5 多路查找树(Muitl-Way Search Tree)
# 5.5 多路查找树(Muitl-Way Search Tree) \> 二叉树的操作效率较高,但是也存在问题: \> \> 二叉树处理的数据需要加载到内存的,如果二叉树的节点少,则问题不大,但是如果二叉树的节点很多(比如1亿), 就存在如下问题 \> \> \* 在构建二叉树时,需要多次进行io
算法
未读
5.4 平衡二叉树(balanced binary tree)
# 5.4 平衡二叉树(balanced binary tree) \> 例:一个二叉排序树,它的左子树全部为空,从形式上看,更像一个单链表。插入速度没有影响,但查询速度明显降低 (因为需要依次比较), 不能发挥BST的优势,因为每次还需要比较左子树,其查询速度比单链表还慢。 \> \> 解决办法:

