分配排序算法正确性的证明是什么

时间:2019-07-17 11:26:04

标签: algorithm analysis correctness counting-sort proof-of-correctness

我写了分配排序算法正确性的证明,我的教授认为这是错误的,我认为我是对的。

我的证明:

  

分配计数

     

基本情况:第一个for循环设置D [j] =0。最初所有元素的计数为0因此,我们有了一个包含元素的数组   为0。现在,我们将计算给定数组中的每个元素,然后将   在适当的地方计数。

     

现在,它将遍历数组中的每个元素,并且每次出现一个值时,它将在数组中的计数器中递增   (D [j]现在,我们将通过添加前一个   数)。

     

现在数组D [j]中的每个键代表数组中的一个值,因此我们将元素添加到输入数组(S [j])并减小   在D [j]数组中加1,直到计数器为0。因此,每个   元素值放置在数组(s [j])的正确位置。因此   元素按升序排序。

     

终止:我们从上面知道S [j]包含已排序或升序的元素,因此它被排序了,因此   将终止。因此,S [1] <= S [2] <=…<= S [n]

我已经写了证明,我认为这是对的,因为我只是假设已经在算法中给出的东西并使用它来试图证明它,但是据我的教授说,这是非常错误的。

SELECT datevalue  
FROM dateformats
GROUP BY datevalue
HAVING COUNT(*) > 1;

我认为我的证明是正确的,但如果没有,请向我解释我做错了什么?感谢您的帮助

0 个答案:

没有答案