冒泡排序:确定内循环和外循环的不变量

问题描述

我不是 100% 确定如何确定以下冒泡排序实现的不变量:

BubbleSort(A[1,...,n])

s <- 1
while s = 1
        s <- 0
        for j <- 1 to length(A)
                if A[j] > A[j+1]
                        A[j] <-> A[j+1]
                        s <- 1

我会说内循环的不变量是: A[j] = max {A[k] | k \in {1,..,j-1}}。 但是,我不太确定是否必须将变量 s 添加到这个特定的不变量中。如果必须,我会说 (s = 0) => a_1 <= a_2 <= ... <= a_(j-1)一个很好的候选者。这样对吗?还是我完全错了?

也许有人能帮我几分钟。我会很感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)