Jahrgangsstufe Q1 - Informatik - Dienstag, der 16. Februar 2021


Sortieren

Mein Name:
Jahrgang/Klasse:
Meine E-Mail-Adresse:

Wir arbeiten weiter an dem Projekt in der Datei (vom 04.02.2021) SortierenBubbleBeispiel.zip.
Ich gehe davon aus, dass wie am 09.02.2021 verlangt die Klasse um die Methode feldZufaelligFuellen(), die wir früher schon behandelt haben, erweitert wurde. Ebenso sollte eine Stoppuhr eingebaut sein.
Ein weiterer Sortieralgorithmus ist hier dargestellt.

  public void superbubblesort()
  { boolean fertig = false;
    int i = 0;
    while (!fertig)
    {    fertig = true;
         for (int k=0; k < maxIndex-i; k++)
              if (feld[k] > feld[k+1])
                   { vertausche(k, k+1);
                     fertig = false;
                   }
         i++;
    } // while
  }  // superbubblesort

Auftrag 1:

Analysiere den Algorithmus und beschreibe in Worten, wie hier im Vergleich zum normalen Bubblesort sortiert wird. In welchen Fällen könnte das Wort "Super" gerechtfertigt sein?

Auftrag 2:

Baue die Methode superbubblesort() in das oben angegebene Projekt zusätzlich zu bubblesort() und minsort() ein. Teste das Programm mit 100.000 Zahlen.


Auftrag 3:

Sortiere ein Feld zuerst mit irgendeinem Verfahren und setze dann z. B. zwei Zahlen am Anfang des Feldes so, dass sie viel zu groß sind an diesen Stellen. Das Feld ist nun "fast" sortiert. Untersuche wieder alle drei Algorithmen beim Sortieren dieses Feldes.


Auftrag 4:

Um zu kontrollieren, ob ein Feld richtig sortiert wurde bzw. ob ein Algorithmus auch wirklich richtig gearbeitet hat, ist eine Kontrollmethode zu schreiben, die feststellt, ob ein Feld richtig sortiert wurde.