数据结构
糖人豆丁
这个作者很懒,什么都没留下…
展开
-
2016年蓝桥杯javaB省赛——压缩变换
压缩变换 小明最近在研究压缩算法。 他知道,压缩的时候如果能够使得数值很小,就能通过熵编码得到较高的压缩比。 然而,要使数值很小是一个挑战。 最近,小明需要压缩一些正整数的序列,这些序列的特点是,后面出现的数字很大可能是刚出现过不久的数字。对于这种特殊的序列,小明准 备对序列做一个变换来减小数字的值。 变换的过程如下: 从左到右枚举序列,每枚举到一个数字,如原创 2016-03-31 19:55:14 · 2472 阅读 · 2 评论 -
数据结构学习——线段树
#include <iostream>#include <algorithm>using namespace std;const int S = 10;const int INT_MIN = -2147483647;int arr[S],segTree[S*4];/**主要思想是递归构造(二分),如果当前节点记录的区间只有一个值(递归结束条件),则直接赋值,否则递归构造左右子树,最后回溯原创 2015-11-16 20:41:51 · 694 阅读 · 0 评论 -
接水问题——使用优先级队列进行维护
问题描述 学校里有一个水房,水房里一共装有m 个龙头可供同学们打开水,每个龙头每秒钟的 供水量相等,均为1。 现在有n 名同学准备接水,他们的初始接水顺序已经确定。将这些同学按接水顺序从1 到n 编号,i 号同学的接水量为wi。接水开始时,1 到m 号同学各占一个水龙头,并同时打 开水龙头接水。当其中某名同学j 完成其接水量要求wj 后,下一名排队等候接水的同学k 马上接替j 同学的位置开原创 2016-05-12 19:44:02 · 570 阅读 · 0 评论 -
用卡特兰数求解对于给定序列有多少种出栈情况
标题:出栈次序X星球特别讲究秩序,所有道路都是单行线。一个甲壳虫车队,共16辆车,按照编号先后发车,夹在其它车流中,缓缓前行。路边有个死胡同,只能容一辆车通过,是临时的检查站,如图![示例图片](http://img.blog.csdn.net/20160522100438465)X星球太死板,要求每辆路过的车必须进入检查站,也可能不检查就放行,也可能仔细检查。如果车辆进入检查站和离开的次序可以任意原创 2016-05-22 10:03:18 · 1740 阅读 · 0 评论 -
堆排序
一、堆排序算法介绍堆是一种数据结构,可以把堆看成一棵完全二叉树,这棵完全二叉树满足:任何一个非叶结点的值都不大于(或不小于)其左右孩子结点的值。若父亲大孩子小,则这样的堆叫做大顶堆;若父亲小孩子大,则这样的堆叫作小顶堆。堆排序的思想:代表堆的完全二叉树的根结点的值是最大(或最小)的,因此将一个无序序列调整为一个堆,就可以找出这个序列的最大(或最小)值,然后将找出的这个最大值交换到序列的最后(...原创 2019-04-02 14:31:40 · 492 阅读 · 0 评论