Helmichs Informatik-Lexikon

Bubblesort (extern)

Auf dieser Seite wird Ihnen gezeigt, wie man eine Bubblesort-Methode implementiert, die unabhängig von anderen Klassen benutzt werden kann und die jeden Array aus int-Zahlen sortiert:

public class Sorter
{
    private static void swap(int [] zahl, int index1, int index2)
    {
        int temp = zahl[index1];
        zahl[index1] = zahl[index2];
        zahl[index2] = temp;
    }

    public static void bubbleSort(int[] array)
    {
        for (int d = 1; d < array.length; d++)
            for (int index = 0; index < array.length-d; index++)
                if (array[index] > array[index+1])
                    swap(array,index,index+1);
    }
}

Dem Schlüsselwort static ist es zu verdanken, dass man jetzt aus jeder anderen Klasse direkt auf die bubbleSort()-Methode zugreifen kann. Hier ein kleines Anwendungsbeispiel:

import java.util.Random;

public class Liste
{
    public final int MAX = 100; 
    private int[] zahl;  

    public Liste()
    {
        zahl = new int[MAX];
    }

    private void erzeugen()
    {
     ...
    }

    private void anzeigen()
    {
      ...
    }
    
    public void testen()
    {
       erzeugen();
       anzeigen();
       Sorter.bubbleSort(zahl);
       anzeigen();
    }
}

Das Erzeugen und Anzeigen der Zahlen geschieht wie in der Folge 8.3 zum Bubblesort-Algorithmus beschrieben. Das Sortieren des Arrays übernimmt jetzt die externe Methode bubbleSort(), der man den ganzen Array als Parameter übergibt. Da die bubbleSort()-Methode eine statische Methode ist, muss man kein Objekt der Klasse Sorter anlegen, damit man die Methode aufrufen kann. Ähnlich wie bei den Methoden der Klasse Math muss man lediglich den Namen der Klasse davorsetzen und kann dann direkt mit der Methode arbeiten.