Sortieralgorithmen ohne Zweck: Schnarchlahm bis super performant
Der Humor von Informatikern rĂĽhmt sich, unkonventionell zu sein. Zeugen dafĂĽr sind Internetforen und unsere Auswahl an sinnbefreiten Sortieralgorithmen.
(Bild: Jessica Nachtigall / KI / heise medien)
Sortieralgorithmen selbst zu schreiben, ist ein guter Weg, um Programmieren zu lernen: Man beschäftigt sich mit der Problemstellung, erarbeitet einen Lösungsweg und implementiert ihn schließlich in der gewünschten Sprache. So lernt man an der überschaubaren und gleichzeitig praktischen Aufgabe, Werte in die richtige Reihenfolge zu bringen, wie man Probleme in der Informatik löst. Das muss nicht staubtrocken sein, indem man sich nur bekanntermaßen effiziente Algorithmen wie Mergesort, Quicksort oder Timsort ansieht. Auch schlechte oder abstruse Algorithmen haben einen Lehrwert, wenn man analysiert, warum sie eben keine (gute) Lösung sind. Und außerdem ist da noch der Unterhaltungswert.
Deshalb beleuchten wir dieses Mal die Kreativität und den Humor der Informatik-Zunft am Beispiel von bescheuerten Sortieralgorithmen. Dazu haben wir Foren abgeklappert, Geschichtsbücher gewälzt und jahrzehntealte Paper gelesen, um die Hintergrundgeschichten zu finden.
- Es gibt spaßige Sortieralgorithmen, die seit Jahrzehnten die Runde machen. Dazu gehören Bogosort, Sleepsort, Miraclesort und Slowsort.
- Als zwei Vertreter fĂĽr besonders schnelle oder langsame Kreationen stellen wir Stalinsort und Permutationsort vor.
- Die meisten Algorithmen jedoch versuchen gar nicht, Daten sinnvoll zu sortieren, sondern haben einfach nur einen lustigen Namen wie Voidsort, Trumpsort oder Schrödingersort.
Die nachfolgend vorgestellten Algorithmen lassen sich grob in drei Kategorien einteilen: Klassiker, die teils seit vielen Jahrzehnten die Runde machen und so ziemlich in jedem Ranking oder Video ĂĽber sonderbare Sortieralgorithmen zu finden sind, besonders schnelle oder extrem langsame Verfahren und Sortieralgorithmen mit lustigen Namen, die aber gar nicht mehr versuchen, Daten vernĂĽnftig anzuordnen. Einige Verfahren haben wir in Python nachprogrammiert und im GitHub-Repository zu dieser Artikelserie hinterlegt, bei manch anderen haben wir auf die Implementierung verzichtet, um unser Universum nicht aus dem Gleichgewicht zu bringen.
Das war die Leseprobe unseres heise-Plus-Artikels "Sortieralgorithmen ohne Zweck: Schnarchlahm bis super performant". Mit einem heise-Plus-Abo können Sie den ganzen Artikel lesen.