Home > Informatik > Stufe EF > Folge 8 (Sortieren)

8.2 Die Klasse "Liste"

Allgemeines - Liste - Bubblesort - Selectionsort - Insertionsort - Videos

Quelltext der Klasse

Es gibt unheimlich viele Sortierverfahren, die man sich unmöglich alle merken kann. Im Schulunterricht spielen aber immer wieder drei einfache Verfahren eine wichtige Rolle, nämlich der Bubblesort, der Selectionsort und der Insertionsort. Im Leistungskurs wird dann auch der Quicksort behandelt und manchmal über weitere Sortierverfahren gesprochen.

Die drei einfachen Sortierverfahren Bubblesort, Selectionsort und Insertionsort wollen wir hier in Java implementieren. Ausgangspunkt für alle drei Verfahren ist eine Java-Klasse, die wir Liste nennen.

Hier ist der komplette Quelltext dieser Klasse. Am besten kopieren Sie den Quelltext in die Zwischenablage und legen dann in einem neuen BlueJ-Projekt eine leere Klasse Liste an. Entfernen Sie den Quelltext, den BlueJ erzeugt hat, und fügen Sie dann den Quelltext aus der Zwischenablage in den leeren Editor ein:

import java.util.Random;
// importiert den Zufallszahlengenerator

public class Liste
{
    private static final int MAX = 100; // eine Konstante
    private int[] zahl;                 // das Array

    public Liste()
    {
        zahl = new int[MAX];   // Erzeugung des Arrays
    }

    public void erzeugen()
    // Das komplette Array wird mit Zufallszahlen gefuellt.
    // Bei MAX = 100 haben diese Zahlen z.B. Werte zwischen 1 und 1000 (= 10 * MAX)
    {
        Random zufall = new Random();   // neuer Zufallszahlengenerator
        for (int i = 0; i < MAX; i++)
            zahl[i] = zufall.nextInt(10 * MAX) + 1;
    }
    
    public void anzeigen()
    // 10 Zeilen mit jeweils 10 Zahlen
    {
        for (int i = 1; i <= MAX; i++)
        {
            System.out.print(zahl[i - 1] + "\t"); 
            // 10 Zahlen in einer Zeile, daher print() und nicht println()
            if (i % 10 == 0)
                System.out.println();
            // Nach je 10 Zahlen erfolgt ein Zeilenumbruch
        }
    }
}

Die Zahl der Arrayelemente wurde hier als Konstante definiert, erkennbar an dem Schlüsselwort final. Das Schlüsselwort static sorgt dafür, dass die Konstante zur Klasse Liste gehört und nicht für jedes Objekt dieser Klasse neu angelegt wird.

Aufgabe

Erstellen Sie ein neues BlueJ-Projekt mit einer leeren Klasse Liste, entfernen Sie den generierten Quelltext komplett und kopieren Sie dann den obigen Quelltext in den leeren Texteditor.

Kompilieren Sie die Klasse und testen Sie die erzeugen()- und anzeigen()-Methoden.

KI-Aufgabe

Beauftragen Sie eine KI, den Quelltext so zu verbessern, dass die Zahlen rechtsbündig angezeigt werden. Lassen Sie sich von der KI dann auch gleich die printf()-Methode erläutern.

Wenn Sie keine KI benutzen wollen, können oder dürfen, dann recherchieren Sie selbst, wie man die printf()-Methode sinnvoll einsetzt.

Hinweis:

Wenn Sie die printf()-Methode nur für diese Aufgabe einsetzen, lernen Sie nicht viel. Verwenden Sie printf() in Zukunft immer dann, wenn Sie Zahlen oder Zeichenketten formatiert ausgeben wollen.

Seitenanfang -
Weiter mit dem Bubblesort …