Wie in dieser Frage beschrieben :
Dropsort, entworfen von David Morgan-Mar, ist ein Beispiel für einen linearen "Sortieralgorithmus", der eine Liste erzeugt, die zwar sortiert ist, aber nur einige der ursprünglichen Elemente enthält. Jedes Element, das nicht mindestens so groß ist wie das Maximum der vorhergehenden Elemente, wird einfach aus der Liste entfernt und verworfen.
Zu einem ihrer Testfällen verwendet werden , eine Eingabe von {1, 2, 5, 4, 3, 7}
Ausbeuten {1, 2, 5, 7}
, wie 4
und 3
sind sowohl für fiel kleiner ist als die zuvor „sortiert“ -Wert 5
.
Wir wollen keine "Sortier" -Algorithmen, wir wollen, dass sie die Realität sind. Daher möchte ich, dass Sie ein Programm schreiben, das anhand einer Liste von Zahlen eine Liste von DropSorted-Listen ausgibt (um einen vollständigen Sortieralgorithmus zu erhalten, müssten diese Listen zusammengeführt werden, aber das Zusammenführen von zwei sortierten Listen wurde zuvor durchgeführt Wenn Sie aufgefordert werden, es erneut zu tun, werden zwei Fragen gestellt, und diese Frage ist speziell der "Aufteilungsschritt" unseres vollständigen DropSort.
Die Anordnung und der Inhalt unserer Listen sind jedoch von entscheidender Bedeutung. Die Ausgabe Ihres Programms muss der Ausgabe einer DropSort-Datei entsprechen, gefolgt von einer DropSort-Datei mit den verworfenen Werten usw., bis Sie nur noch eine Liste sortierter Ketten haben. Ausleihen der vorhandenen Testsuite (und Hinzufügen von zwei weiteren):
Input -> Output
{1, 2, 5, 4, 3, 7} -> {{1, 2, 5, 7}, {4}, {3}}
{10, -1, 12} -> {{10, 12}, {-1}}
{-7, -8, -5, 0, -1, 1} -> {{-7, -5, 0, 1}, {-8, -1}}
{9, 8, 7, 6, 5} -> {{9}, {8}, {7}, {6}, {5}}
{10, 13, 17, 21} -> {{10, 13, 17, 21}}
{10, 10, 10, 9, 10} -> {{10, 10, 10, 10}, {9}} //Note equivalent values aren't dropped
{5, 4, 3, 8, 7, 6} -> {{5, 8}, {4, 7}, {3, 6}}
{0, 2, 5, 4, 0, 7} -> {{0, 2, 5, 7}, {4}, {0}}
Sie können davon ausgehen, dass die Eingabe nicht leer ist.
Dies ist Code-Golf , daher gelten die Standardregeln!
{3,4,5,3,4,5,3,4,5}
ergeben {{3,4,5,5,5},{3,4,4},{3}}
?
[5, 4, 3, 8, 7, 6] -> [5, 8], [4,3,7,6]
?