Class LectureWithSortAlgorithms


  • public class LectureWithSortAlgorithms
    extends java.lang.Object

    Autor

    Dokumentiert von: Mert Can Özdemir
    Modul: DAP1

    Dokumentation der Klasse LectureWithSortAlgorithms

    In dieser Klasse wurden die aus der Vorlesung bekannten Sortieralgorithmen Sortieren durch Auswählen (SelectionSort), Sortieren durch Einfügen (InsertionSort) und der QuickSort-Algorithmus
    jeweils für zwei Sortierkriterien (Matrikelnummer und Name) implementiert.
    Bei Allen Sortieralgorithmen wird das Feld 'students' aufsteigend sortiert.

    Aufsteigend sortiert

    Aufsteigend sortiert bedeutet, dass jedes Element, das links von einem Element steht kleiner oder gleich dem Element an der aktuellen Position ist.
    Jedes Element, das rechts steht ist größer oder gleich.
    Beispiel:
    1=1=1<2=2=2<3<4<5=5=5<6

    • Constructor Detail

      • LectureWithSortAlgorithms

        public LectureWithSortAlgorithms​(java.lang.String t,
                                         int cap)

        Konstruktor - LectureWithSortAlgorithms( String t, int cap )

        Der Konstruktor erstellt ein neues 'LectureWithSortAlgorithms-Objekt'.
        Das Feld 'students' hat dabei die Länge 'cap', die neben dem String als int als Argument übergeben wird

    • Method Detail

      • add

        public void add​(Student s)

        void add( Student s )

        Die add Methode f�gt ein Student Objekt in das Feld ein.

      • show

        public void show()

        void show()

        Diese Methode erzeugt für jedes Objekt in dem Feld 'students' eine geeignete Ausgabe, indem auf jedes 'Student-Objekt' (,also s) die toString() Methode aus der Klasse 'Student' aufgerufen wird.

      • insertionSortByNumber

        public void insertionSortByNumber()

        void insertionSortByNumber()

        Bestimmt den allgemeinen Zwischenzustand (-> Der Index ab dem die Indezes im Feld leer sind)

      • insertionSortByName

        public void insertionSortByName()

        void insertionSortByName()

        -> Diese Methode ist Analog zu der Methode 'insertionSortByNumber()'

        Bestimmt den allgemeinen Zwischenzustand (-> Der Index ab dem die Indezes im Feld leer sind)

      • selectionSortByName

        public void selectionSortByName()

        void selectionSortByName()

        Diese Methode ist Analog zu der selectionSortByNumber()-Methode

        Der letzte zu sortierende Eintrag muss nicht betrachtet werden, da er immer sein eigenes Minimum bildet.
        Die Methode 'searchForMinimalName()' gibt den Index des Student-Objekts mit dem kleinsten Namen zur�ck.
        Die Suche mit 'searchForMinimalName()' erfolgt im unsortierten Teil des Feldes students:
        - Der unsortierte Teil beginnt bei Index i.
        - Der unsortierte Teil endet bei Index firstUnused-1.

      • selectionSortByNumber

        public void selectionSortByNumber()

        void selectionSortByNumber()

        Der letzte zu sortierende Eintrag muss nicht betrachtet werden, da er immer sein eigenes Minimum bildet.
        Die Methode 'searchForMinimnalNumber()' gibt den Index des Student-Objekts mit der kleinsten Matrikelnummer zur�ck.
        Die Suche mit 'searchForMinimalNumber()' erfolgt im unsortierten Teil des Feldes students:
        - Der unsortierte Teil beginnt bei Index i.
        - Der unsortierte Teil endet bei Index firstUnused-1.

      • quickSortByNumber

        public void quickSortByNumber()

        void quickSortByNumber()

        Diese Methode ist notwendig, da sie den ersten Aufruf von 'private void groupByNumber( int leftBound, int rightBound )' übernimmt.
        Dieser Umweg ist erforderlich, da Parameterwerte für die Größe und die Belegung des Feldes ebenfalls privat deklariert sind.

      • quickSortByName

        public void quickSortByName()

        void quickSortByName()

        Diese Methode ist Analog zu der 'quickSortByNumber()' Methode

        Diese Methode ist notwendig, da sie den ersten Aufruf von 'private void groupByName( int leftBound, int rightBound )' übernimmt.
        Dieser Umweg ist erforderlich, da Parameterwerte für die Größe und die Belegung des Feldes ebenfalls privat deklariert sind.

      • isSorted

        public void isSorted()

        void isSorted()

        Die Methode wirft eine Exception, falls das Feld 'students' nicht Aufsteigend sortiert ist.
        Wenn das Feld aufsteigend sortiert ist, passiert nichts.