本学期我有一门算法课程。在我完成关于订单统计的讲座之前,一切都很好。
以下是该讲座的第一张幻灯片:
Order Statistics
Select the ith smallest of n elements (the
element with rank i).
• i = 1: minimum;
• i = n: maximum;
• i = ⎣(n+1)/2⎦ or ⎡(n+1)/2⎤: median.
Naive algorithm: Sort and index ith element.
Worst-case running time = Θ(n lg n) + Θ(1)
= Θ(n lg n)
我无法理解以下内容:
什么是订单统计?
n个最小的n个元素是什么意思?我需要一个例子才能知道什么是“ith”!!
关于这些的任何简单解释?
我所知道的是,这与Divide and Conquer有关,因为下一张幻灯片是关于它的:)。
答案 0 :(得分:2)
"Order statistics"是“以升序排序的N元素序列的第K个元素”的奇特名称。幻灯片的其余部分简单地说明了这个想法,解释了1阶统计量是序列中的最小元素,n阶统计量是最大元素,n/2
阶统计量是中值等等。
答案 1 :(得分:1)
它的顺序统计与数组中的第i个最小元素相同。例如,假设我们有一个数组A [Size] = {3,4,-3,-2,0,1,10,2,14},我们想要与第4个对应的元素。顺序统计然后我们的函数或程序将返回值1.该算法利用随机分区和递归调用随机选择函数。
伪代码如下:
RSelect( Array[], p,r, i)
if p == r
return A[p]
q = RandomPartition(Array[],p,r)
k = q - p + 1
if i == k // case that the pivot is the answer
return Array[q]
else if i<k
return RSelect(Array,p, q-1,i)
else
return RSelect(Array, q+1, r, i-k)
该算法是一种征服算法,它使用递归来解决问题,方法是选择随机分支功能,在随机分区函数中完成,以帮助对数组进行分区并抛出大于或小于的值。枢轴取决于第i个Order统计量是否大于或小于pivot。例如,如果it order statistic小于pivot,它将丢弃大于pivot的值。因为分区功能中返回的数据透视值位于适当的位置。