![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
Nancy-sn
这个作者很懒,什么都没留下…
展开
-
外部排序的基本内容
若要进行 k 路归并排序,则需要在内存中分配 k 个输入缓冲区和1个输出缓冲区①生成 r 个初始归并段(对 L 个记录进行内部排序,组成一个有序的初始归并段)②进行 S 趟 k 路归并, S =步骤[ logurl把 k 个归并段的块读入 k 个输入缓冲区用“归并排序”的方法从 k 个归并段中选出几个最小记录暂存到输出缓冲区中当输出缓冲区满时,写出外存读写外存的时间+内部排序所需时间+内部归并所需时间如何进行 k 路归并外部排序外部排序时间开销可用“败者树”减少代价1:需要增加相应原创 2022-06-17 14:53:18 · 289 阅读 · 0 评论 -
调整最小不平衡子树的方法如下:
调整最小不平衡子树的方法如下:对应四种情况:LL, RR, LR, RL原创 2022-05-27 18:53:19 · 224 阅读 · 0 评论 -
B数和B+树的一些区别
b树以及b+树之间的一些区别原创 2022-05-28 21:15:25 · 128 阅读 · 0 评论 -
B树的插入和删除操作
b树的插入、删除操作原创 2022-05-28 21:16:25 · 73 阅读 · 0 评论 -
堆排序的相关知识
结点 i 的左孩子是2i;右孩子是2i+1;父节点是 i /2,编号 小于等于 n /2的结点都是分支结点。大根堆(根≥左、右);小根堆(根左、右)编号 s n /2的所有结点依次“下坠”调整(自底向上处理各分支节点)调整规则:小元素逐层“下坠”(与关键字更大的孩子交换)将堆顶元素加入有序子序列(堆顶元素与堆底元素交换)堆底元素换到堆顶后,需要进行“下坠”调整,恢复“大根堆”的特性上述过程重复 n -1趟空间复杂度时间复杂度稳定性基于大根堆的堆排序得到“递增序列”,基于小根堆的堆排序得到“递.原创 2022-06-01 21:08:09 · 472 阅读 · 0 评论 -
堆的插入和删除操作
新元素放到表尾(堆底)根据大/小根堆的要求,新元素不断上升”,直到无法继续上升为止被删除元素用表尾(堆底)元素替代根据大/小根堆的要求,替代元素不断“下坠”,直到无法继续下坠为止插入删除每次“上升调整只需对比关键字1次每次“下坠”调整可能需要对比关键字2次,也可能只需对比1次关键字对比次数● i 的左孩子● i 的右孩子● i 的父节点......原创 2022-06-01 21:20:30 · 515 阅读 · 0 评论 -
基数排序适用情况
基数排序适合于一下场景:数据元素的关键字可以方便地拆分为 d 组,且 d 较小每组关键字的取值范围不大,即 r 较小数据元素个数 n 较大原创 2022-06-02 20:07:34 · 932 阅读 · 0 评论 -
基数排序的相关知识及总结
基数排序的基本知识如下:算法思想,性能,适用情况原创 2022-06-02 20:08:48 · 68 阅读 · 0 评论 -
最佳归并树
最佳归并树的构造原创 2022-06-04 18:45:54 · 131 阅读 · 0 评论 -
二叉排序树
二叉排序是的定义、插入、删除、查找效率分析原创 2022-06-17 10:55:11 · 105 阅读 · 0 评论 -
红黑数和普通的二叉排序树有什么要求
与普通 BST 相比,有什么要求①每个结点或是红色,或是黑色的②根节点是黑色的③叶结点(外部结点、 NULL 结点、失败结点)均是黑色的④不存在两个相邻的红结点(即红结点的父节点和孩子结点均是黑色)⑤对每个结点,从该节点到任一叶结点的简单路径上,所含黑结点的数目相同...原创 2022-05-27 21:22:02 · 71 阅读 · 0 评论 -
个人电话号码查询系统
实验目的及要求目的:通过设计一个《个人电话号码查询系统》,进一步熟悉一些概念、基本知识和技能,利用所学的基本知识和技能解决简单的面向对象的程序设计问题。实现根据用户输入的信息进行快速的查询。要求: 实现一个简单的个人电话号码查询系统,根据用户输入的信息(例如姓名等),对数据进行二叉排序并实现平衡二叉树,对数据进行快速查询。编程完成通讯录的一般性管理工作,如通讯录中记录的增加、修改、查找、删除、输出等功能。每个记录包含姓名、电话号码、住址等个人基本信息。(1)在外存上,用文件保存电话号码信息;原创 2021-12-05 23:20:16 · 6296 阅读 · 1 评论 -
数据结构个人电话号码查询系统实验报告
实验目的及要求目的:通过设计一个《个人电话号码查询系统》,进一步熟悉一些二叉树的概念、以及基本知识和技能,利用所学的基本知识和技能解决简单的面向对象的程序设计问题。实现根据用户输入的信息进行快速的查询。要求: 实现一个简单的个人电话号码查询系统,根据用户输入的信息(例如姓名等),对数据进行二叉排序并实现平衡二叉树,对数据进行快速查询。编程完成通讯录的一般性管理工作,如通讯录中记录的增加、修改、查找、删除、输出等功能。每个记录包含姓名、电话号码、住址等个人基本信息。(1)在外存上,用文件保存电话原创 2021-12-05 23:15:42 · 6516 阅读 · 8 评论 -
数据结构哈夫曼树实验报告
实验目的及要求目的:熟练掌握二叉树应用(Huffman编码)的基本算法实现;进一步理解哈夫曼树的逻辑结构和存储结构,进一步提高使用理论知识指导解决实际问题的能力要求:(1).假设文档内容从键盘输入;(2).设计哈夫曼算法的存储结构;(3).设计哈夫曼编码和解码算法;(4).分析使劲按复杂度和空间复杂度。实验步骤1.实验问题分析程序是通过利用二叉树结构实现哈夫曼编码和译码,并且程序需具有以下要求:(1)初始化:能够让用户输入字符和相应字符的频度来初始化,并建立哈夫曼树。原创 2021-12-05 23:13:09 · 23278 阅读 · 1 评论 -
数字旋转方阵实验报告
实验目的及要求目的:设计一个能正确输出N×N(1<=N<=10)数字旋转方阵。要求:(1)设计数据结构存储;(2)设计算法完成任意N阶数字旋转方阵;(3)分析时间复杂度和空间复杂度;实验步骤1.数据结构的设计程序采取二维数组的存储结构进行数字旋转方阵的存储,因为数字旋转方阵也是一个平面图,采用二维数组的存储结构能更直观反映方阵。2.算法的设计 每一层的数字分作四个小组,每一组的数字个数为N-1,通过设立一个标志来判断转换方向。算法结束的标志有两种...原创 2021-12-05 23:11:00 · 2023 阅读 · 0 评论 -
数据结构迷宫问题实验报告
实验目的及要求目的:该程序利用非递归的方法求出一条走出迷宫的路径,并将路径输出。首先随机生成合理的迷宫并以#的形式输出,再输出所走过的路径。要求:(1)设计数据结构存储迷宫; (2)设计存储结构保存从入口到出口的通路: (3)设计算法完成迷宫问题的求解; (4)分析算法的时间复杂度。实验步骤1.实验问题分析:将迷宫定义成一个二维数组,其中元素0表示没有障碍,元素1表示有障碍。其中,前进的方向有四个,分别是上、下、左、右。 ...原创 2021-12-05 23:09:27 · 5059 阅读 · 0 评论 -
数据结构约瑟夫环实验报告
实验目的及要求目的:能够熟练掌握线性表的基本操作在顺序和链式两种存储结构上的实现,进一步理解线性表的逻辑结构和存储结构,提高使用理论知识指导解决实际问题的能力。要求:1.建立数据模型,确定存储结构;2.对任意人数、密码,都能实现约瑟夫环问题;3.出圈顺序可以依次输出,也可以用一个数组输出。实验步骤1.实验问题分析(1)由于当某个人退出圆圈后,报数的工作要从下一个人继续,剩下的人仍要围成一个圆圈,这个问题具有循环性质,考虑使用循环链表; 由于退出圆圈的这个指令对应着结点的删除操原创 2021-12-05 23:07:29 · 6890 阅读 · 0 评论 -
约瑟夫环问题实验报告
1.实验目的及要求目的:能够熟练掌握线性表的基本操作在顺序和链式两种存储结构上的实现,进一步理解线性表的逻辑结构和存储结构,提高使用理论知识指导解决实际问题的能力。要求:1.建立数据模型,确定存储结构;2.对任意人数、密码,都能实现约瑟夫环问题;3.出圈顺序可以依次输出,也可以用一个数组输出。2.实验步骤1.实验问题分析(1)由于当某个人退出圆圈后,报数的工作要从下一个人继续,剩下的人仍要围成一个圆圈,这个问题具有循环性质,考虑使用循环链表; 由于退出圆圈的这个指令对应着原创 2021-11-13 10:06:29 · 7335 阅读 · 1 评论