2017-10-30 1 views
-2

Warum in Bubble Sort bekomme ich die Anzahl der Swaps (anstelle von Null), wenn ich versuche, ein sortiertes Array einzugeben?

> 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

Ich habe Ihren Code auf einem sortierten Array ausgeführt und habe 'swap = 0' ... – alfasin

Antwort

0

Es hängt davon ab, ob Ihre Eingabe-Array in auf- oder absteigender Reihenfolge sortiert ist. Wenn Ihr Eingabe-Array wie folgt angeordnet ist: {10, 9, 8, ...}, dann a [0]> a [1], und Sie geben das if-then-Konstrukt in der verschachtelten for-Schleife ein und inkrementieren den Austausch. Daher haben Sie einen Wert ungleich Null für Swap.

Verwandte Themen