题目地址: "P1456 Monkey King" 一道~~挺模板的~~左偏树题 左偏树 优先队列在信息学竞赛中十分常见,在统计问题、最值问题、模拟问题和贪心问题等等类型的题目中,优先队列都有着广泛的应用。二叉堆是一种常用的优先队列,它编程简单,效率高,但如果问题需要对两个优先队列进行合并,二叉堆的 ...
分类:
其他好文 时间:
2019-02-21 21:48:04
阅读次数:
166
堆:什么是堆?又该怎么理解呢? ①堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质: ·堆中某个节点的值总是不大于或不小于其父节点的值; ·堆总是一棵完全二叉树。 将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。常见的堆有二叉堆、斐波那契堆等。 ②堆是在程序运行时,而 ...
分类:
其他好文 时间:
2019-02-14 17:51:01
阅读次数:
208
二叉堆是一种特殊的堆,二叉堆就是一棵完全二叉树。二叉堆有两种:最大堆和最小堆。最大堆:父结点的键值总是大于或等于任何一个子节点的键值;最小堆:父结点的键值总是小于或等于任何一个子节点的键值。在二叉堆上可以进行插入节点、删除节点、取出值最小的节点、减小节点的值等基本操作。 ...
分类:
其他好文 时间:
2019-02-05 14:27:16
阅读次数:
199
iterator 迭代器 这就像是STL容器的指针,可以用星号"*"操作符解除引用 我们就先用vector举个例子 vector 头文件:<vector> 向量,个人习惯称为动态数组,因为它相当于一个不定长的数组,当数组长度达到目前最大长度的时候,会将数组的容量扩容至原来的两倍 初始化 1. vec ...
分类:
其他好文 时间:
2019-02-03 14:10:35
阅读次数:
149
1、定义:将优先级最高的元素先出队列的队列。 2、基本操作:入队(插入),出队(删除优先级最高的元素,代码中以元素值最小为优先级最高),构建堆, 修改元素等。 3、二叉堆:父节点小于子节点的完全二叉树。 性质: (1)结构性:完全二叉树结构 (2)堆序性:父节点的值小于子节点的值 3、代码实现: ( ...
分类:
其他好文 时间:
2019-01-27 21:33:47
阅读次数:
209
题目 Description 小Y在学树论时看到了有关二叉树的介绍:在计算机科学中,二叉树是每个结点最多有两个子结点的有序树。通常子结点被称作“左孩子”和“右孩子”。二叉树被用作二叉搜索树和二叉堆。随后他又和他人讨论起了二叉搜索树。什么是二叉搜索树呢?二叉搜索树首先是一棵二叉树。设key[p]表示结 ...
分类:
其他好文 时间:
2019-01-25 22:55:08
阅读次数:
196
堆排序 堆排序以二叉形式。 以数组形式表示。a[1] 是二叉堆的跟结点,每个结点的有左右子结点。规定每个结点的值大于其子节点的堆叫最大堆,小于的叫最小堆。 无序数组通过建堆的方式建立成一个最大或最小堆。 算了 ,说不清,上代码。 代码: ...
分类:
编程语言 时间:
2019-01-20 00:52:53
阅读次数:
237
冒泡排序(交换排序):大的数右移交换,优化成鸡尾酒排序;演变成快速排序插入排序:从第二个元素往左比较,插入到小于他的数后面希尔排序选择排序:选择最小的放在最左侧,以此类推归并排序:基于分治算法快速排序(交换排序):基于分治算法堆排序和优先级队列,基于二叉堆计数排序:小范围内的整数超级快速桶排序基数排序-桶排序的扩展两种交换排序算法1.冒泡排序->优化成鸡尾酒排序2.快速排序两种基于分治算法的
分类:
编程语言 时间:
2019-01-16 16:36:27
阅读次数:
155
二叉树 二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。 一棵深度为k,且有2^k 1个节点的二叉树,称为满二叉树。这种树的特点是每一层上的节点数都是最大节点数。而在一棵二叉 ...
分类:
其他好文 时间:
2019-01-06 21:57:35
阅读次数:
172