假设:数组A经过g分类。即对于所有整数x和特定整数g, A [x]< A [x + g]< A [x + 2g] ......
现在,如果我们在将其复制到数组B之后进行排序,以实现条件:对于另一个特定的整数h, B [x]< B [x + h]< B [x + 2h] ......
假设是在对h进行h排序之后,对于任意整数h和g,数组仍然保持g-排序。
证明:如果与假设相反,h-排序将影响g-sorted-ness,这将归因于A [x1]> A [x1 + h],对于g排序数组A中的某些x1,我们在x和x + h交换了元素 - 这次交换最终破坏了g-sortedness
现在,我们知道对于所有x,A [x-g]< A [x]< A [x + g]< A [x + 2g],因为它已经被g-sorted。
因此,A [x + h-g]< A [x + h]< A [X + H + G]
对于特定的x = x1,我们有A [x1]> A [x1 + h]所以我们需要在x1和x1 + h交换元素。在交换之前,数组的条件是:对于所有x
{A [x-g]; A [x + h-g]}< A [x + h]< A [x]< {A [x + g]; A [X + H-G]}
{}表示我不知道{}中元素的顺序,但{}中的每个元素分别满足排序条件。
对于特定的x = x1,即使我们在x1 + h和x1交换元素,交换前的条件是
{A [x1-g]; A [x1 + h-g]}< A [x1 + h]< A [x1] < {A [x1 + g]; A [X1 + H-G]}
交换后,它是
黄金:{B [x1-g]; B [x1 + h-g]}< B [x1]< B [x1 + h] < {B [x1 + g]; B [X1 + H-G]}
这可能会以两种方式破坏g-sorted-ness:
1. B [x1]> B [X1-G]
2. B [x1 + g]> B [x1]
但是上述交换条件标记为GOLD后,这两种破坏条件都不正确。因此,在对g排序的数组进行h排序之后,g-sorted-ness不会被破坏。
问题:这是一个数学上有效的证明吗?请评论。
答案 0 :(得分:0)
证据不好,因为假设是假的。考虑以下h排序算法:
这导致一系列元素被h分类但不再是g-sorted。好吧,我们真的应该表明,有些方法可以对上述参数进行分类处理。这个例子很简单。设g = 1且h = 2.取数组
A = 1 2 3 4
A经过g分类和h分类。但是如果h-sorted而不是g-sorted那么元素的以下排列:
B = 1 3 2 4
因此,不能保证h-sorting导致g-sorted列表。
现在有一些名为 stable 排序算法的东西;根据定义,如果h分类算法保留了您试图显示的属性,则它将是g-stable。但是,您需要证明特定h排序算法的g-stable属性,它将适用于该算法,而不是h-sorting。