Ein Sortieralgorithmus, der den Rechenaufwand von $ O (n) $ durch ** Reinigen (Entfernen) von Elementen realisiert, die nicht in aufsteigender (absteigender) Reihenfolge vorliegen? Es scheint, dass es letztes Jahr ein heißes Thema wurde, aber ich habe mich nicht getroffen.
Sie können sehr ordentlich mit Python3.8
oder höher schreiben.
stalin_sort = lambda x:[m:=x[0]] + [m:=i for i in x[1:] if i>=m]
arr = [1, 2, 1, 1, 4, 3, 9]
print(stalin_sort(arr))
#---> [1, 2, 4, 9]
print(len('lambda x:[m:=x[0]] + [m:=i for i in x[1:] if i>=m]'))
#---> 50
Es wurde implementiert, um die Existenz zu ignorieren, anstatt ruhig zu sein, aber es war kurz und nett.
Recommended Posts