Home > Informatik > Stufe Q1 > 12. Suchen > 12.2 Binäre Suche

Übung 12.2-4, Lösungshinweise

Die Aufgabe

Übung 12.2-4 (PC)

Erweitern Sie die Klasse Zahlenso, dass die durchschnittliche Suchzeit für verschieden große Arrays automatisch ermittelt und ausgegeben wird. Eine mögliche Ausgabe könnte zum Beispiel so aussehen:

Suchzeit für 50 Zahlen = 5.75
Suchzeit für 100 Zahlen = 6.5
Suchzeit für 200 Zahlen = 7.5
Suchzeit für 400 Zahlen = 8.7
Suchzeit für 800 Zahlen = 9.5
Suchzeit für 1600 Zahlen = 10.6
Suchzeit für 3200 Zahlen = 11.65

Stellen Sie die Abhängigkeit der durchschnittlichen Suchzeiten von der Größe des Arrays graphisch dar und bestimmen Sie, welches Zeitverhalten hier vorliegt (O-Notation).

Systematisches Vorgehen

Sie müssen hierzu den Quelltext der Klasse Zahlen etwas umstellen, vor allem was die Länge des Arrays angeht. Ich selbst habe das Problem so gelöst, dass ich zunächst einen riesigen Array von 3200 Elementen Länge anlege:

liste = new int[3200];

Wenn ich dann mit einem Array der Länge 50 arbeiten möchte, setze ich einfach ein neues Attribut aktuelleLaenge auf den Wert 50.

aktuelleLaenge = 50;

Die Methoden der Klasse, die auf den Array zugreifen, verwenden dann nicht mehr die feste Zahl 100 oder 99 für ihre for-Schleifen, sondern den Wert von aktuelleLaenge. Hier ein Beispiel:

    private void erzeugenSortiert()
    {
       for (int i = 0; i < aktuelleLaenge; i++)
          liste[i] = i*10 + zufall.nextInt(10);
    }

Viel Erfolg nun beim Programmieren!