什么是订单统计和最小?

时间:2013-02-14 19:31:32

标签: algorithm statistics divide-and-conquer

本学期我有一门算法课程。在我完成关于订单统计的讲座之前,一切都很好。

以下是该讲座的第一张幻灯片:

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有关,因为下一张幻灯片是关于它的:)。

2 个答案:

答案 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的值。因为分区功能中返回的数据透视值位于适当的位置。