Algorytm · Python → przeglądarka
Mao Sort
„W komunizmie wszystkie zmienne są równe”
Zwykły algorytm sortujący porządkuje listę. Mao Sort dąży do czegoś wyższego: do listy złożonej z n kopii tej samej liczby. W każdej iteracji losuje jedną z pięciu technik rewolucyjnych. Cel jest jasny, metody chaotyczne, a wynik — przewidywalny tylko w tym, że czasem przychodzi po dwóch krokach, a czasem po kilkudziesięciu.
Naciśnij „Rewolucja”, żeby zacząć.
Pięć technik rewolucyjnych
Kolektywizacja
Losowy podzbiór elementów zastępuje ich zaokrąglona średnia.
Samokrytyka
Jeden losowy element zostaje zastąpiony medianą listy.
Reedukacja
Dwa losowe elementy zamieniają się miejscami. Zmiany nie ma, zasoby zużyte.
Wielki Skok
Losowa część listy zostaje zastąpiona kopiami jednego elementu. Może skończyć rewolucję w jednym ruchu.
Czystka
Elementy po jednej stronie mediany zastępują losowe wartości z drugiej połowy.
Ile trwa jedność?
Tysiąc rewolucji na liście dwunastu liczb, policzonych w przeglądarce. Rozkład ma ciężki ogon — tak jak zapowiada dokumentacja.
Liczę…