Dies ist eine Code-Golf-Frage.
Eingang
Eine Liste nicht negativer Ganzzahlen in einem beliebigen Format ist am bequemsten.
Ausgabe
Dieselbe Liste in sortierter Reihenfolge in dem Format, das am bequemsten ist.
Beschränkung
- Ihr Code muss im schlimmsten Fall in O (n log n) ausgeführt werden, wenn
n
die Anzahl der Ganzzahlen in der Eingabe angegeben ist. Dies bedeutet, dass beispielsweise eine randomisierte Quicksortierung nicht verfügbar ist. Es stehen jedoch viele andere Optionen zur Auswahl. - Verwenden Sie keine Sortierbibliothek / Funktion / Ähnliches. Verwenden Sie auch nichts, was den größten Teil der Sortierarbeit für Sie erledigt, wie eine Heap-Bibliothek. Was auch immer Sie implementieren, implementieren Sie es grundsätzlich von Grund auf neu.
Sie können eine Funktion definieren, wenn Sie möchten, aber dann zeigen Sie bitte ein Beispiel dafür in einem vollständigen Programm, das tatsächlich funktioniert. Es sollte in allen folgenden Testfällen erfolgreich und schnell ausgeführt werden.
Testfälle
In: [9, 8, 3, 2, 4, 6, 5, 1, 7, 0]
Out:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In: [72, 59, 95, 68, 84]
Out:[59, 68, 72, 84, 95]
In: [2, 2, 1, 9, 3, 7, 4, 1, 6, 7]
Out:[1, 1, 2, 2, 3, 4, 6, 7, 7, 9]
In: [2397725, 1925225, 3304534, 7806949, 4487711, 8337622, 2276714, 3088926, 4274324, 667269]
Out:[667269,1925225, 2276714, 2397725,3088926, 3304534, 4274324, 4487711, 7806949, 8337622]
Deine Antworten
Bitte geben Sie den von Ihnen implementierten Sortieralgorithmus und die Länge Ihrer Lösung im Titel Ihrer Antwort an.
O (n log n) Zeitsortieralgorithmen
Es gibt viele O (n log n) Zeitalgorithmen. Diese Tabelle enthält eine Liste einiger davon.
intersect
kommt unter "ähnlich", wenn es automatisch das Array sortiert. Wenn Sie Duplikate entfernen, erhalten Sie die falsche Ausgabe.
intersect
automatische Sortieren des Arrays. Ich denke, Sie wollen das auch ausschließen. Wie wäre esunique
(Duplikate entfernen, Ergebnis sortieren)?