Algorithmen und Datenstrukturen in Go

Aufgabe: Sortieralgorithmen verstehen und anwenden

frenchsuits

Für einen der unten aufgelisteten Sortieralgorithmen sollen die Eigenschaften stabil/instabil, iterativ/rekursiv, in-place/out-of-place geklärt und die Zeitkomplexität (Ο-Notation) im Best-, Average-, Worst-Case ermitteln werden.

Außerdem soll jeder Algorithmus in der Programmiersprache Go implementiert werden. Die implementierten Funktionen sollen ein Slice von Ganzzahlen beliebiger Menge sortieren können. Die Sortierfunktion soll die nachfolgende Signatur haben:

func Sort(a []int) []int {
    // TODO: implement
    return a
}

Abschließend sollen die Implementierungen vorgestellt und der Ablauf der Algorithmen anhand von Spielkarten demonstriert werden.

Die folgenden Sortieralgorithmen stehen zur Auswahl: