首页 > 试题广场 >

(动态二分查找)有序数组上的二分查找花费对数时间,但插入一个

[问答题]
(动态二分查找)有序数组上的二分查找花费对数时间,但插入一个新元素的时间与数组规模呈线性关系。我们可以通过维护多个有序数组来提高插入性能。
       具体的,假定我们希望支持n元集合上的SEARCH和INSERT操作。令,令n的二进制表示为<nk-1,nk-2,...,n0>.我们维护k个有序数组A0,A1,...,Ak-1,对i=0,1,...,k-1,数组Ai的长度为2i。每个数组或满或空,取决于ni=1还是ni=0,。因此对于k个数组中保存的元素总数为。虽然单独每个数组都是有序的,但不同数组中的元素之间不存在特定的大小关系。
a.设计算法,实现这种数据结构上的SEARCH操作,分析其最坏情况下的运行时间。
b.设计INSERT算法。分析最坏情况运行时间和摊还时间。
c.讨论如何实现DELETE。

这道题你会答吗?花几分钟告诉大家答案吧!