题目 小凸和小方相约玩密室逃脱,这个密室是一棵有n个节点的完全二叉树,每个节点有一个灯泡。点亮所有灯 泡即可逃出密室。每个灯泡有个权值Ai,每条边也有个权值bi。点亮第1个灯泡不需要花费,之后每点亮4 个新的灯泡V的花费,等于上一个被点亮的灯泡U到这个点V的距离Du,v,乘以这个点的权值Av。在点灯 ...
分类:
其他好文 时间:
2018-03-27 23:58:53
阅读次数:
289
前言 大概花了一周的时间把八大基础排序过了一遍,这篇博文主要是用来回顾一下八大基础排序的要点和一些总结~ 回顾: "冒泡排序就这么简单" "选择排序就这么简单" "插入排序就这么简单" "快速排序就这么简单" "归并排序就这么简单" "堆排序就这么简单" "希尔排序就这么简单" "基数排序就这么简单 ...
分类:
编程语言 时间:
2018-03-27 12:29:07
阅读次数:
228
Java实现堆排序(大根堆) 堆排序是一种树形选择排序方法,它的特点是:在排序的过程中,将array[0,...,n-1]看成是一颗完全二叉树的顺序存储结构,利用完全二叉树中双亲节点和孩子结点之间的内在关系,在当前无序区中选择关键字最大(最小)的元素。 1. 若array[0,...,n-1]表示一 ...
分类:
编程语言 时间:
2018-03-25 11:58:00
阅读次数:
191
二叉树二叉树常被用作二叉查找树和二叉堆二叉树的第i层至多有2^{i-1}个结点深度为k的二叉树至多有2^k-1个结点一棵深度为k,且有2^k-1个节点的二叉树,称为满二叉树完全二叉树完全二叉树是效率很高的数据结构,堆是一种完全二叉树或者近似完全二叉树,所以效率极高,像十分常用的排序算法、Dijkstra算法、Prim算法等都要用堆才能优化,几乎每次都要考到的二叉排序树的效率也要借助平衡性来提高,而
分类:
其他好文 时间:
2018-03-12 18:44:32
阅读次数:
133
$treap$ (树堆)= $tree$ (树) + $heap$ (堆) 显然,这个名字一定是二叉排序树和堆的结合 事实就是这样 怎么定义? 是一棵二叉树,但并不一定是完全二叉树 按权值形成二叉排序树,即左边比"我"小,右边比"我"大 按随机给的值形成一棵堆,以小根堆为例,即"我"的孩子的随机值小 ...
分类:
其他好文 时间:
2018-03-11 02:49:52
阅读次数:
216
完全二叉树是效率很高的数据结构,堆是一种完全二叉树或者近似完全二叉树,所以效率同样极高。目前十分常用的排序算法、Dijkstra算法、Prim算法等都要用堆才能优化。 堆排序是一种选择排序算法,与原序列的初始排列次序无关,即最好、最坏和一般情况排序的时间复杂度不变,均为O(nlgn)。而且,堆排序只 ...
分类:
编程语言 时间:
2018-03-10 21:55:42
阅读次数:
136
第7章,神奇的树。 第一节,树的特点。 第二节,二叉树。 第三节,优先队列--堆(特殊的完全二叉树) 最小堆:All node-father smaller than node-sons 最大堆:相反。 ...
分类:
编程语言 时间:
2018-03-02 14:58:45
阅读次数:
170
概念 性质: 1.堆是一颗完全二叉树,用数组实现。 2.堆中存储数据的数据是局部有序的。 最大堆:1.任意一个结点存储的值都大于或等于其任意一个子结点中存储的值。 2.根结点存储着该树所有结点中的最大值。 最小堆:1.任意一个结点存储的值都小于或等于其惹你一个子结点存储的值。 2.根结点存储着该树所 ...
分类:
其他好文 时间:
2018-02-28 16:23:14
阅读次数:
212
一、堆先说说堆概念:如果有一个关键码的集合K={k0,k1,k2,…,kn-1},把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中,并满足:Ki<=K2i+1且Ki<=K2i+2(Ki>=K2i+1且Ki>=K2i+2)i=0,1,2…,则称为小堆(或大堆)。小堆(大堆)中:任一结点的关键码均小于(大于)等于它的左右孩子的关键码,位于堆顶结点的关键码最小(最大)
分类:
其他好文 时间:
2018-02-26 11:43:25
阅读次数:
136
我们知道满二叉树只是一种特殊的二叉树,大部分二叉树的结点都是不完全存在左右孩子的,即很多指针域没有被充分地利用。另一方面我们在对一棵二叉树做某种次序遍历的时候,得到一串字符序列,遍历过后,我们可以知道结点之间的前驱后继关系,也就是说,我们可以很清楚地知道任意一个结点,它的前驱和后继是哪一个。可是这是 ...
分类:
其他好文 时间:
2018-02-26 11:14:49
阅读次数:
218