数据结构复习

本文深入探讨了数据结构中的关键概念,包括B树的插入原理,哈希法的平均查找长度分析,如何在乱序数组中O(n)查找第K大数字,哈弗曼树的带权查找长度,最小生成树的普利姆算法,各种排序方法的比较,以及堆排序的详细步骤,内容覆盖了数据结构的基础与进阶知识。

一、B树

原文:https://blog.youkuaiyun.com/disiwei1012/article/details/78632859
插入要点:以一个3阶的B树为例:
(1)如果该结点的关键字个数没有到达2个,那么直接插入即可;
(2)如果该结点的关键字个数已经到达了2个,那么根据B树的性质显然无法满足,需要将其进行分裂

分裂的规则是该结点分成两半(注意:这里是把一个结点变成了2个结点),将中间的关键字进行提升,加入到父亲结点中,但是这又可能存在父亲结点也满员的情况,则不得不向上进行回溯,甚至是要对根结点进行分裂,那么整棵树都加了一层。

二、哈希法的平均查找长度(成功和不成功2种)

https://blog.youkuaiyun.com/dancheren/article/details/76359424

不成功的重点:①看地址0,到第一个关键字为空的地址2的距离为3,因此查找不成功的次数为3.
②分母是哈希函数的取值个数,即 KEY MOD X 的 X, 而不是所给的一组元素。

三、在N个乱序数字中查找第K大的数字(O(n))

https://blog.youkuaiyun.com/program_developer/article/details/82346599#2.3%20%E8%A7%A3%E6%B3%95%E4%B8%89%EF%BC%9AO%28n%29

四、哈弗曼树

(1)带权查找长度
注:设初始层数为1,则第L层到第1层的长度为L-1(与深度无关)!

五、最小生成树

(1)普利姆算法
例题:注意加点法是根据每次最小生成树中的结点集合来进行的,而不能在0,1加入集合后,去直接加入3,5!应该查找结点0和2中相邻的最小路径长度的结点。

在这里插入图片描述

在这里插入图片描述

六、各种排序比较

所谓排序稳定不稳定是说序列中相同元素经过排序后,他们的先后顺序不变。如果变了就不是稳定的。

在这里插入图片描述

七.堆排序

https://blog.youkuaiyun.com/l577217/article/details/80516654
堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。
堆是具有以下性质的完全二叉树:
每个结点的值都大于或等于其左右孩子结点的值,称为大根堆;
或者每个结点的值都小于或等于其左右孩子结点的值,称为小根堆。如下图:
在这里插入图片描述

简要核心:
① 建立初堆
反复利用“筛选法”,设二叉树结点为N,从N/2向下取整的位置开始,筛选,逐层向上倒退,直至根节点。(例如建立大根堆)
在这里插入图片描述
②进行调整后,堆顶元素(array[0])为最大值,可以理解为先将堆顶元素与堆尾元素交换,然后将堆尾元素移除,将剩余的元素看成一个新的堆,使用筛选法①。
③重复步骤②,直到堆排序完成。
在这里插入图片描述
八、树、森林和二叉树的相互转换

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值