2015-04-14 51 views
1

我有這個問題,我很困惑,一直在工作一段時間,我似乎無法找到任何幫助。Bubblesort算法問題

input a: array [1 .. n] of integer; n : integer; 
temp i, j : integer; 
j <-- n; 
while j ≥ 1 
    do I <-- 1; 
     while i ˂ j 
      do 
       if a[i] ˃ a[j] then swap a[i], a[j]; 
       i <-- i + 1; 
      od; 
     j < j – 1; 
    od 
  1. 將這個算法終止?

    我有我的答案,因爲沒有becayse [i]和[j]永遠不會交換。

  2. 作爲排序問題大小的函數,該算法在O-notation中的最壞情況時間複雜度是多少?

  3. 該算法的前提是真值TRUE。該算法的期望後置條件是:for i ˂ j, a[i] ˂ a[j], for i = 1, 2, . . . , n-1, j = 2, . . . , n

找到兩個循環不變,而您認爲如果當算法終止將導致所需的後置條件的內環和外環。

任何幫助,將不勝感激!我想了解這一點!

回答