首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏以终为始

    7-5 中的路径 (25 分)

    7-5 中的路径 (25 分) 将一系列给定数字插入一个初始为空的小顶H[]。随后对任意给定的下标i,打印从H[i]到根结点的路径。 下一行给出区间[-10000, 10000]内的N个要被插入一个初始为空的小顶的整数。最后一行给出M个下标。 输出格式: 对输入中给出的每个下标i,在一行中输出从H[i]到根结点的路径上的数据。 输入样例: 5 3 46 23 26 24 10 5 4 3 输出样例: 24 23 10 46 23 10 26 10 &:这题完全是运用了的性质,虽然没有直接建,但是可以用个数组来模拟一下。 

    20720编辑于 2023-03-09
  • 来自专栏刷题笔记

    7-5 字符串循环左移

    点这里 7-5 字符串循环左移 输入一个字符串和一个非负整数N,要求将字符串循环左移N次。 输入格式: 输入在第1行中给出一个不超过100个字符长度的、以回车结束的非空字符串;第2行给出非负整数N。

    1.1K20发布于 2019-11-08
  • 来自专栏freesan44

    PTA 7-5 买地攻略 (25 分)

    数码城市有土地出售。待售的土地被划分成若干块,每一块标有一个价格。这里假设每块土地只有两块相邻的土地,除了开头和结尾的两块是只有一块邻居的。每位客户可以购买多块连续相邻的土地。

    19900发布于 2021-09-11
  • 来自专栏刷题笔记

    7-5 小字辈 (25 分)

    点这里 7-5 小字辈 (25 分) 本题给定一个庞大家族的家谱,要请你给出最小一辈的名单。

    88710发布于 2019-11-08
  • 来自专栏freesan44

    PTA 7-5 买地攻略 (25 分)

    数码城市有土地出售。待售的土地被划分成若干块,每一块标有一个价格。这里假设每块土地只有两块相邻的土地,除了开头和结尾的两块是只有一块邻居的。每位客户可以购买多块连续相邻的土地。

    32320编辑于 2021-12-06
  • 来自专栏LC刷题

    前言 ,顾名思义,是长得像个草堆一样的数据结构。但在计算机存储里面,一般使用数组来表示。 按照的性质区分,可分为大顶,小顶。 大顶:所有的parent节点值都要大于其child节点。 对于某个节点,如果不满足的性质,需要这个节点加一调整。 建立大顶后,将大顶顶元素与末尾元素进行交换,然后再调整交换后的顶,不过此时的大小减一,最后位置元素不可参与调整范围里。如此反复。 make_heap() 用给定的数据建立一个,默认大顶,小顶要设置比较函数,保证最大值在所给范围的最前面,其他值的位置不确定 push_heap() 往中压入一个元素 pop_heap() 排出顶元素 用原数组建成一个小顶,之后取顶最小的两个元素,相加后再加入到中,一直到这个小顶顶大于给定的K。

    98020发布于 2020-10-23
  • 来自专栏指点的专栏

    我们在很多情况下都听到“”这个计算机术语,那么“”到底是什么呢? 在数据结构中,是一种数据结构,具体一点,最常用的就是二叉, 二叉就是一棵完全二叉树(以下简称),我们可以利用这种数据结构来完成一些任务,典型的例子:堆排序就是利用来实现的一种高效的排序方式。 这是一个很重要的规律,对的操作基本上是基于这个规律来进行的 Ok,接下来我们看两个新概念:最小堆和最大堆。 最小堆:顶元素小于的任何一个直接子节点。 最大堆:顶元素大于的任何一个直接子节点。 注意: ①中任一子树亦是。 这里提示一下堆排序:每一次取出顶元素,然后把的最后一个元素提到顶,然后调用对应的建立最小(最大)的方法来维护这个,不断重复,直到整个为空。

    78820发布于 2019-01-18
  • 来自专栏java学习java

    解读

    的大小只与对象的结构有关,与对象的实际内容无关。也就是说,无论字符串的长度有多少,内容是什么,浅的大小始终是24字节。 如上图A的保留集应为AC,B的保留集为DE 深(Retained Heap) 深是指对象的保留集中所有的对象的浅大小之和。 注意:浅指对象本身占用的内存,不包括其内部引用对象的大小。 一个对象的深指只能通过该对象访问到的(直接或间接)所有对象的浅之和,即对象被回收后,可以释放的真实空间。   A的深大小即为AC浅大小之和 对象的实际大小 这里,对象的实际大小定义为一个对象所能触及的所有对象的浅大小之和,也就是通常意义上我们说的对象大小。 那么对象A的浅大小只是A本身,不含C和D,而A的实际大小为A、C、D三者之和。而A的深大小为A与D之和,由于对象C还可以通过对象B访问到,因此不在对象A的深范围内。

    44720编辑于 2023-10-15
  • 来自专栏机械之心

    # # 什么是(Heap)是一个可以被看成近似完全二叉树的数组。 是一个完全二叉树。完全二叉树要求,除了最后一层,其他层的节点个数都是满的,最后一层的节点都靠左排列。 中每一个节点的值都必须大于等于(或小于等于)其子树中每个节点的值。 可以分为大顶和小顶。 对于每个节点的值都大于等于子树中每个节点值的,叫作 “大顶”。 对于每个节点的值都小于等于子树中每个节点值的,叫作 “小顶”。 # 如何实现 完全二叉树比较适合用数组来存储。用数组来存储完全二叉树是非常节省存储空间的。 常见的操作: HEAPIFY 建:把一个乱序的数组变成堆结构的数组,时间复杂度为 O (n) 。 和优先级队列非常相似:往优先级队列中插入一个元素,就相当于往中插入一个元素;从优先级队列中取出优先级最高的元素,就相当于取出顶元素。

    87020编辑于 2023-04-07
  • 来自专栏codechild

    的实现 类型的创建 的物理结构本质上是顺序存储的,是线性的。但在逻辑上不是线性的,是完全二叉树的这种逻辑储存结构。 的这个数据结构,里面的成员包括一维数组,数组的容量,数组元素的个数。 这里我们用的向上调整算法。 对于删除头的数据,我们是把尾的数据覆盖头,元素个数减1,然后用的向下调整算法,进一步调整成堆。 创建成堆 升序——建大堆 顶一定是最大的,那么我们每一次把顶的元素和尾的数据进行交换,那么最后一个元素为最大的元素,最后再次调整成堆的形式,这样依次可以得到次大的,最后的最后得到一个升序的数组 降序——建小堆 顶一定是最小的,那么我们每一次把顶的元素和尾的数据进行交换,那么最后一个元素为最小的元素,最后再次调整成堆的形式,这样依次可以得到次小的,最后的最后得到一个降序的数组。

    43240编辑于 2023-05-30
  • 来自专栏用户3029758的专栏

    //数据结构-,用C++类实现,这里以小顶为例,所谓的,是一种以完全二叉树为基础的数据结构,二话不说,上代码; #include<iostream> #include<cstdlib> #include

    49320发布于 2019-09-04
  • 来自专栏总栏目

    的定义: 的由来:要从优先队列说起,优先队列的定义:一般的队列取出的值是先进先出,是按入队顺序去出的。那么优先队列则是按照元素的优先权的大小,比如总是取出一组数据中的最大数。 如下: 最好的办法就是完全二叉树来实现优先队列,我们知道完全二叉树最好的存储方式就是数组,而不是链表,可以说是集结了完全二叉树和搜索二叉树的特点。 的主要函数有如下: 其中最重要的函数就是插入和删除函数,本来我想自己给这几个函数写出来,写一个自己的算法,时间有限,直接放上课程的标准代码,以后有时间我在自己去写出来。 typedef struct HNode *Heap; /* 的类型定义 */ struct HNode {     ElementType *Data; /* 存储元素的数组 */     int Size;          /* 中当前元素个数 */     int Capacity;      /* 的最大容量 */ }; typedef Heap MaxHeap; /* 最大堆 */

    43610编辑于 2022-09-05
  • 来自专栏酒楼

    1.是一种常见的数据结构,通常用于实现优先队列等应用。 数组表示: 可以通过数组来表示,通过数组下标之间的关系实现的父子关系。 的操作: 主要支持两种基本操作:插入(Insert)和删除(Delete)。插入操作将新元素添加到中,而删除操作通常删除中的最大或最小元素,然后重新调整堆以保持的性质。 的应用: 广泛应用于各种算法和数据结构中。优先队列就是的一种应用,它能够以 O(log n) 的时间复杂度实现插入和删除最大或最小元素的操作。 堆排序: 堆排序是一种使用的排序算法。 建(Heapify): 在建阶段,我们将无序数组构建成一个二叉。通常采用自底向上的方式,从最后一个非叶子节点开始,逐步向上调整,保持的性质。

    38000编辑于 2023-12-02
  • 来自专栏山行AI

    jvm 内浅析

    外快还是内快 普遍的说法是外内存会快一些,原因主要有: 直接内存 可以禁掉GC 在java进行IO读写的时候 java的bytes需要做一个copy copy到c的bytes 直接内存没有这一步 (注意这个copy不是 用户态和内核态的那个,java是-Xmx指定的,C是jvm的) 外内存优势在 IO 操作上,对于网络 IO,使用 Socket 发送数据时,能够节省内存到外内存的数据拷贝 外内存的回收 外最底层是通过malloc方法申请的,但是这块内存需要进行手动释放,JVM并不会进行回收,幸好Unsafe提供了另一个接口freeMemory可以对申请的外内存进行释放,可以使用 - clean方法,通过这个方法可以手动进行外内存回收,是外内存回收的关键。 上面我们知道,在申请外内存不足时会进行System.gc,既然要调用System.gc,那肯定是想通过触发一次gc操作来回收外内存,不过我想先说的是外内存不会对gc造成什么影响(这里的System.gc

    1.7K20发布于 2019-09-25
  • (建算法,堆排序)

    一.什么是? 1. 就是完全二叉树,而且是一种特殊的完全二叉树,它需要满足每一个父节点都大于子节点,称为大堆,或每一个父节点都小于子节点,称为小堆。 和取顶数据和顺序表的操作是一样的这里重点来学一下的插入,的删除。 在学习建算法的时候我们以对数组建为例,就是把数组的数据之间的关系做成一个结构,一般有两种方法,向上调整建和向下调整建,具体怎么做我们来看下面。 1.向上建法 向上建法也就是通过向上调整建,我们拿到一个数组后可以把数组的首元素当做,第二个元素当做把新的元素插入,然后通过向上调整构成新的,以此类推下去把数组遍历完后一个就建成了 有一个很优的方法就是只取出文件的前K个数建成一个大堆,也就是说这个只用储K个元素,那么顶就是这个的最大元素,然后继续遍历文件每遍历一个元素都与顶元素作比较,如果比顶元素小就更新一下顶元素(把小的那个变成堆顶元素

    22310编辑于 2025-11-15
  • 来自专栏freesan44

    PTA 7-5 实验室使用排期 (25 分)

    受新冠疫情影响,当前大家的活动都必须注意保持充分的社交距离,国家实验室的使用也同样受到了严格的限制。假设规定任何一个时间点上,实验室内最多只能有 1 个人,且每个人都必须提前申请实验室的使用,只有申请被批准后才能进入。现给定一批第二天的实验室使用申请,你需要写个程序自动审批,使得能够被批准的申请数量最大化。

    61900发布于 2021-09-10
  • 来自专栏freesan44

    PTA 7-5 实验室使用排期 (25 分)

    受新冠疫情影响,当前大家的活动都必须注意保持充分的社交距离,国家实验室的使用也同样受到了严格的限制。假设规定任何一个时间点上,实验室内最多只能有 1 个人,且每个人都必须提前申请实验室的使用,只有申请被批准后才能进入。现给定一批第二天的实验室使用申请,你需要写个程序自动审批,使得能够被批准的申请数量最大化。

    47510编辑于 2021-12-06
  • 来自专栏OverThinker的专栏

    初识数据结构——优先级队列(!)

    大根 父节点 ≥ 子节点 堆排序(升序)、TopK最小 小根 父节点 ≤ 子节点 堆排序(降序)、TopK最大 二叉 完全二叉树实现,常用数组存储 最常用实现 斐波那契 更优的理论时间复杂度, ) O(1) 需要向下调整(shiftDown) 查看(peek) O(1) O(1) 直接返回顶元素 建 O(N) O(1) 自底向上调整比逐个插入更高效 // 向下调整示例(小根) void 的应用场景总结 应用场景 使用的类型 原因说明 堆排序 大根/小根 升序用大根,降序用小根 TopK最大元素 小根 维护K个元素的小根,淘汰小的 TopK最小元素 大根 维护K个元素的大根 ,淘汰大的 任务调度(优先级高的先执行) 大根 优先级高的在顶 合并K个有序链表 小根 每次取最小节点,效率O(logK) Dijkstra算法 小根 每次取距离最小的节点 八、总结:的" 我""数据结构理解好深! 当你写代码:这bug怎么""了这么多! 当你面试被问:面试官,咱们能""心一点吗?

    34310编辑于 2025-10-29
  • 来自专栏刷题笔记

    【未完成】7-5 文件传输 (25 分)

    本文链接:https://blog.csdn.net/shiliang97/article/details/102727502 7-5 文件传输 (25 分) 当两台计算机双向连通的时候,文件是可以在两台机器间传输的

    43120发布于 2019-11-07
  • 来自专栏freesan44

    PTA 7-5 子串与子列 (25 分)

    子串是一个字符串中连续的一部分,而子列是字符串中保持字符顺序的一个子集,可以连续也可以不连续。例如给定字符串 atpaaabpabtt,pabt是一个子串,而 pat 就是一个子列。

    45740发布于 2021-09-10
领券