Optimiert Bubble-Sort (Java)

Ich würde gerne wissen, wie ich sonst noch optimieren kann bubble sort, so dass es mit Blick auf die Elemente bereits sortiert, sogar nach dem ersten Durchgang.

Eg. [4, 2, 3, 1, 5, 6] --> [2, 3, 1, **4, 5, 6**]

Beobachten wir, dass [4,5,6] sind bereits sortiert, wie kann man ändern, meinen code so, dass es mit Blick auf diese 3 Elemente in den nächsten Durchgang? (das heißt, die Art wäre effizienter?)
Empfehlen Sie eine rekursive Methode?

public static void bubblesort(int[] a) {
  for(int i=1; i<a.length; i++) {
    boolean is_sorted = true;

    for(int j=0; j<a.length; j++) {
      if(a[j] > a[j+1]) {
         int temp = a[j];
         a[j] = a[j+1];
         a[j+1] = temp;
         is_sorted = false;
      }
    }

    if(is_sorted) return;
  }
}

Vielen Dank für Ihre Zeit!

InformationsquelleAutor kent | 2013-04-24
Schreibe einen Kommentar