Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
523 views
in Technique[技术] by (71.8m points)

bubble sort - Bubblesort: determining the invariant for inner- and outer-loop

I am not 100 % sure how to determine the invariants for the following bubblesort-implementation:

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

I would say the invariant for the inner-loop is: A[j] = max {A[k] | k in {1,..,j-1}}. However, I am not quite sure, whether I have to add the variable s to this particular invariant. If I have to I would say that (s = 0) => a_1 <= a_2 <= ... <= a_(j-1) is a good candidate. Is this correct? Or am I completely wrong?

Perhaps someone have a few minutes to help me. I would appreciate it.

question from:https://stackoverflow.com/questions/66068855/bubblesort-determining-the-invariant-for-inner-and-outer-loop

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...