2017-10-30 4 views
-2

バブルソートでソートされた配列を入力しようとすると、なぜゼロの代わりにスワップの数が得られますか?

> Bubble `BUUBLE 
 

 
> Sorting 
 
**SWAPING** 
 

 
` 
 
     import java.util.Random; 
 

 
     public class bubble { 
 
**Initializing** 
 
    public static int count1 = 0; 
 
    public static int swap = 0; 
 

 
    public static int[][] Bubbles(int[] a) { 
 
    int output[] = new int[2]; 
 
    for (int pass = 0; pass < a.length; pass++) { 
 
     for (int i = 0; i < a.length - 1; i++) { 
 
     count1++; 
 
     if (a[i] > a[i + 1]) { 
 
      int temp = a[i]; 
 
      a[i] = a[i + 1]; 
 
      a[i + 1] = temp; 
 
      swap++; 
 

 
     } 
 
     } 
 
    } 
 
    output[0] = swap; 
 
    output[1] = count1; 
 

 
    return new int[][] { 
 
     a, 
 
     output 
 
    }; 
 
    } 
 
} 
 

 

 
Bubble sort **Bubble**

+0

ソートされた配列でコードを実行し、 'swap = 0'を取得しました... – alfasin

答えて

0

それはあなたの入力配列を昇順または降順でソートされているかどうかに依存します。入力配列の順序が{10,9,8、...}ならばa [0]> a [1]となり、ネストされたforループに入れてスワップをインクリメントします。その結果、スワップにはゼロ以外の値が設定されます。

関連する問題