我是去过 "离散数学和应用程序"的由肯尼斯*罗森 我在那里遇到了下述方法插入类及其分析。算法是相当不同的一个处理CLR所以我有共同的整个算法如下。注意,他们已经被认为是一个机器在哪里只有比较被认为是重要的,并因此已经开始根据。该问题这是我的脸是在分析部分在这里给出的大胆。而且具体疑问,我们已经指出的,我在结束这个问题。

算法 插入排序。


程序 插入排序($a_1、a_2,...,a_n$:真正的数字 $n\geqslant2美元 )

for j:= 2 to n
begin
    i:=1
    while aj > ai
        i:=i+1
    m := aj
    for k:= 0 to j-i-1
        aj-k := aj-k-1
     ai:=m
end {a1,a2,...,an is sorted} 

插入:插入序是一个简单的排序的算法,但是这通常不是最有效的。排序的清单 $n$ 元素,插入序开始的第二元。插入排比较这个二元的第一个元素,并插入了它之前的第一个元素,如果它不得超过的第一个元素和之后的第一个元素,如果它超过了第一个要素。在这一点上,头两个要素是在正确的顺序。第三个要素是然后与第一个元素,并且如果它是较大的比的第一个元素,它是与第二元;就是插入到正确的位置之中的第三个要素。

在一般情况下,在该 $y$ 第步插入排序, $y$ 个元素的列表中插入到正确的位置在名单的前排 $j—1美元 元素。插入 $y$ 个元素的列表中,一个线性的搜索技术的使用;的 $y$ 个元素是依次相比已排 $j—1美元 元素在开始的列表,直到的第一个元素是不小于这个元素是发现或直到它已经与所有 $j—1美元 元素;的 $y$ 个元素是插入在正确的位置使得第一 $j$ 元素排序。算法继续直到最后一个元件是放在正确的位置相对于已排列第一 $n—1美元 元素。插入类描述是伪代码算法之上。

平均情况的复杂性插入排序:什么是平均数的比较,使用的插入的排序进行排序 $n$ 不同的元素呢?

方案:我们先假设 $X$ 是的随机变量的数量相等的比较使用的插入排序排列表 $a_1、a_2,...,a_n$$n$ 不同的要素。然后 $E(X)$ 是平均数的比较,使用。(回顾在步骤 $i$ 对于 $i=2,...,n$ ,插入序插入 $i$ 个元素在原列入正确的位置排列第一 $i−1美元 元素的原始清单。)

我们让 $X_i$ 是随机的变数等于用来插入的比较 $蛋白的睡眠$ 到适当的位置之后的第一个 $i−1美元 元素 $a_1、a_2,...,a_{我−1}$ 已排序。因

$X=X_2+X_3+···+X_n$,

我们可以使用线性的预期得出的结论,

$E(X)=E(X_2+X_3+···+X_n)=E(X_2)+E(X_3)+···+E(X_n).$

找到 $E(X_i)$ 对于 $i=2,3,...,n$$p_j(k)$ 表示的概率是最大的第一个 $j$ 元素的清单发生在 $k$ 个位置,那就是, $max(a_1、a_2,...,a_j)=a_k$ ,哪里 1美元≤k≤元 .因为要素的列表是随机分布的,它是同样可能的最大元素中的第一个 $j$ 元素,以发生在任何位置。因此, $p_j(k)=\压裂{1}{j}$ .如果 $X_i(k)$ 等于该数目比较使用的插入,如果排序 $蛋白的睡眠$ 插入 $k$ 个位置列表,一旦 $a_1、a_2,...,a_{我−1}$ 已排, $X_i(k)=k$ .因为它是可能的, $蛋白的睡眠$ 插在的任何第一次 $i$ 位置,我们发现,

$E(X_i)$ = $$\sum_{k=1}^{我}p_i(k)。X_i(k)=\sum_{k=1}^{我}\压裂{1}{我}.k=\压裂{1}{我}\sum_{k=1}^{我}k=\压裂{1}{我}.\压裂{i(i+1)}{2}=\压裂{i+1}{2}$$

它遵循,

$E(X)$ = $$\sum_{i=2}^{n}E(X_i)=\sum_{i=2}^{n}\压裂{i+1}{2}=\压裂{n^{2}+3n-4}{4}$$

我的疑问


现在在这里虽然我们正在考虑的计算 $E(X_i)$ 我们是第一考虑到的概率最高的元件之间 $a_1、a_2,...,蛋白的睡眠$ 正在在的位置 $k$.然后他们说,数目比较的时候 $蛋白的睡眠$ 放到 $k$ 个位置列表 $a_1、a_2,...,a_{我-1}$ (这是已排)是 $k$.他们为什么要考虑插入 $蛋白的睡眠$ 进入位置的最大的元素 $a_1、a_2,...,蛋白的睡眠$. $蛋白的睡眠$ 按此算法应该放在第一位置(在扫描阵列从左)当我们找到一个因素是 $\geqslant蛋白的睡眠$ 并不是最大的元件的电子列表 $a_1、a_2,...,蛋白的睡眠$.

Moveover他们说,最大的元件的电子列表 $a_1、a_2,...,蛋白的睡眠$ 任何任意的位置 $k$ 第及该概率是 $\压裂{1}{我}$.但是,如果我们看到, $a_1、a_2,...,a_{我-1}$ 排序,那么最大的 $a_1、a_2,...,蛋白的睡眠$ 是么 $a_{我-1}$$蛋白的睡眠$.

有帮助吗?

解决方案

概率 1美元/i$ 是正确的,因为它指的是相对的了 $a_1,\ldots,蛋白的睡眠$ 前排序第一个 $i-1美元 元素。

然而,该论点似乎是错误的。相关的概率不是 $p_i(k)$, ,而是 $q_i(k)$, ,这是概率, $蛋白的睡眠$ 是的 $k$'th最小的元素了 $a_1,\ldots,蛋白的睡眠$ (之前 排序)。这种概率是 1美元/i$, 独立的 $k$.

许可以下: CC-BY-SA归因
不隶属于 cs.stackexchange
scroll top