数据结构和算法
莫小兮丶
努力成为技术达人
展开
-
B-树、B+树、B*树
B-树B-树就是B树,普通节点也存数据特点: 1. 根结点的儿子数为[2, M] 2. 除根结点以外的非叶子结点的儿子数为[M/2, M] 3. 每个结点存放至少M/2-1(取上整)和至多M-1个关键字(至少2个关键字) 4. 非叶子结点的关键字个数=指向儿子的指针个数-1 5. 所有叶子结点位于同一层B+树只有叶子节点才存数据,非叶节点只存储关键字,非叶子节点所能保存的关键字大大增加,树的高度降低,磁盘IO次数减少应用:mysql索引的一种(聚簇和非聚簇索引)特点:原创 2021-05-14 20:30:05 · 683 阅读 · 2 评论 -
C++大顶堆实现堆排序
代码中有详细的注释,如有不懂的地方欢迎评论区交流~#include<iostream>using namespace std;const int N = 1e5 + 10;int n, q[N];//向下调整,low为欲调整的数组下标,high一般为堆的最后一个元素的数组下标,在[low, high]范围内进行调整void down_adjust(int low, int high) { int i = low, j = 2 * i; while (j <原创 2021-03-06 10:51:13 · 324 阅读 · 0 评论 -
C++并查集经典例题(代码备注详细版)
题目描述有一个叫做“数码世界”奇异空间,在数码世界里生活着许许多多的数码宝贝,其中有些数码宝贝之间可能是好朋友,并且数码宝贝世界有两条不成文的规定:第一,数码宝贝A和数码宝贝B是好朋友等价于数码宝贝B与数码宝贝A是好朋友第二,如果数码宝贝A和数码宝贝C是好朋友,而数码宝贝B和数码宝贝C也是好朋友,那么A和B也是好朋友现在给出这些数码宝贝中所有好朋友的信息,问:可以把这些数码宝贝分成...原创 2020-03-21 00:00:37 · 695 阅读 · 0 评论 -
模拟停车场管理系统(栈和队列的应用)
模拟停车场管理系统(数据结构)ps. 这是我们学校的实验课题目,本文章用来记录,本人能力有限,本文章仅为参考 实验目的和要求通过实验进一步理解栈和队列的逻辑结构和存储结构,进一步提高使用理论知识指导解决实际问题的能力。 问题描述设停车厂只有一个可停放几辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达的先后顺序依次排列,若车场内已停满几辆汽车,则后来的汽车只能...原创 2019-10-15 23:23:04 · 5849 阅读 · 3 评论