所谓半无穷范围查询(semi-infinite range query),是教材8.4节中所介绍一般性范围查询的特例,具体地,这里的查询区域是某一侧无界的广义矩形区域,比如R=[-1,+1]x[0,﹢∞),即是对称地包含正半y坐标轴、宽度为2的一个广义矩形区域,当然,对查询的语义功能要求依然不变——从某一相对固定的点集中,找出落在任意指定区域R内部的所有点。
范围树(176页习题[8-20])稍作调整之后,固然也可交持半无穷范围查询,但若能针对这一特定问题所固有的性质,改用优先级搜索树(priority search tree,PST)之类的数据结构,则不仅可以保持O(r+logn)的最优时间效率,而且更重要的是,可以将空间复杂度从范围树的O(nlogn)优化至O(n)。
如图x10.3所示,优先级搜索树除了首先在拓扑上应是一棵二叉树,还同时遵守以下三条规则。
①首先,各节点的y坐标均不小于其左右孩子(如果存在)——因此,整体上可以视作为以y坐标为优先级的二叉堆。
②此外,相对于任一父节点,左子树中节点的x坐标均不得大于右子树中的节点。
③最后,互为兄弟的每一对左、右子树,在规模上相差不得超过一。
a)试按照以上描述,用C/C++定义并实现优先级搜索树结构;
b)试设计一个算法,在O(nlogn)时间内将平面上的n个点组织为一棵优先级搜索树;
c)试设计一个算法,利用已创建的优先级搜索树,在O(r+logn)时间内完成每次半无穷范围查询,其中r为实际命中并被报告的点数。
A.8位二进制代码,最右位为1
B.8位二进制代码,最左位为1
C.8位二进制代码,最右位为0
D.8位二进制代码,最左位为0
下面关于解释程序的描述正确的是()。(1)解释程序的特点是处理程序时不产生目标代码(2)解释程序适用于COBOL和FORTRAN语言(3)解释程序是为打开编译程序技术的僵局而开发的
A(1)(2)
B(1)
C(1)(2)(3)
D(2)(3)
A.苏格拉底
B.布瓦洛
C.柏拉图
D.奥古斯丁
A.绿色施工表现为一种过程,绿色建筑表现为一种状态或者产品
B.绿色施工表现为绿色建筑增色,绿色施工一定能建成绿色建筑
C.绿色建筑形成,必须首先使设计成为 “绿色 ”
D.绿色施工主要涉及施工期间,绿色建筑对整个使用周期均有重大影响
A.最早描述了天花(虏疮)的症状表现
B.最早载述了传染性肝炎(虏黄)病的证治
C.详尽叙述了恙虫病(沙虱病)的传染媒介、途径、临床特征及防治
D.首先提出传染病由“乖戾之气”所致,并“多相染易”
E.“以毒攻毒”可治疗疾病方法具有免疫学思想
问题描述:设有n个程序{1,2,...,n}要存放在长度为1的磁带上.程序i存放在磁带上的长度是li(1≤i≤n).程序存储问题要求确定这n个程序在磁带上的一个存储方案,使得能够在磁带上存储尽可能多的程序.
算法设计:对于给定的n个程序存放在磁带上的长度,计算磁带上最多可以存储的程序数.
数据输入:由文件input.txt给出输入数据.第1行是2个正整数,分别表示文件个数n和磁带的长度L.接下来的1行中,有1个正整数,表示程序存放在磁带上的长度.
结果输出:将计算的最多可以存储的程序数输出到文件output.txt.