www.wikidata.de-de.nina.az
Der Begriff Shakersort bezeichnet einen stabilen Sortieralgorithmus der eine Menge von linear angeordneten Elementen z B Zahlen der Grosse nach sortiert Weitere Namen fur diesen Algorithmus sind Cocktailsort Ripplesort Shearsort oder BiDiBubbleSort bidirektionales Bubblesort Inhaltsverzeichnis 1 Prinzip 2 Komplexitat 3 Formaler Algorithmus 4 Beispiel 5 WeblinksPrinzip Bearbeiten nbsp Animation von Shakersort der jeweils rote Balken wird verschobenDas zu sortierende Feld wird abwechselnd nach oben und nach unten durchlaufen Dabei werden jeweils zwei benachbarte Elemente verglichen und gegebenenfalls vertauscht Durch diese Bidirektionalitat kommt es zu einem schnelleren Absetzen von grossen bzw kleinen Elementen Anhand des Sortierverfahrens lasst sich auch der Name erklaren denn der Sortiervorgang erinnert an das Schutteln des Arrays oder eines Barmixers Komplexitat BearbeitenDer Algorithmus besitzt eine quadratische und daher im Vergleich zu vielen anderen Sortieralgorithmen schlechte Worst Case Laufzeit die jedoch in der einfachen Version gleichzeitig auch der normalen Laufzeit entspricht In der Informatik druckt man dies mittels Landau Symbol durch 8 n 2 displaystyle textstyle Theta n 2 nbsp aus Dafur bietet dieser Algorithmus den Vorteil eines geringen Speicherbedarfes Da der Algorithmus ein In place Verfahren ist braucht er keinen zusatzlichen Speicher Zudem hat Shakersort auf fast sortierten Arrays eine lineare Laufzeitkomplexitat 8 n displaystyle textstyle Theta n nbsp Formaler Algorithmus BearbeitenDer Algorithmus sieht im Pseudocode folgendermassen aus Das erste Element der Liste sortierbarer Elemente A hat hierbei den Index 0 prozedur shakerSort A Liste sortierbarer Elemente beginn 1 ende Lange A 2 wiederhole vertauscht falsch beginn beginn 1 fur jedes i von beginn bis ende wiederhole falls A i gt A i 1 dann vertausche A i A i 1 vertauscht wahr ende falls ende fur falls vertauscht falsch dann brich wiederhole solange Schleife ab ende falls vertauscht falsch ende ende 1 fur jedes i von ende bis beginn wiederhole falls A i gt A i 1 dann vertausche A i A i 1 vertauscht wahr ende falls ende fur solange vertauscht prozedur endeBeispiel BearbeitenEine Reihe von sechs Zahlen soll aufsteigend sortiert werden Die fett markierten Zahlenpaare werden verglichen Wenn die rechte Zahl hierbei kleiner ist als die linke so werden die Zahlen vertauscht blau markiert 55 07 78 12 42 33 1 Durchlauf 07 55 78 12 42 33 07 55 78 12 42 33 07 55 12 78 42 33 07 55 12 42 78 33 07 55 12 42 33 78 2 Durchlauf 07 55 12 33 42 78 07 55 12 33 42 78 07 12 55 33 42 78 07 12 55 33 42 78 3 Durchlauf 07 12 55 33 42 78 07 12 33 55 42 78 07 12 33 42 55 78 4 Durchlauf 07 12 33 42 55 78 07 12 33 42 55 78 5 Durchlauf 07 12 33 42 55 78 Fertig sortiert Weblinks BearbeitenVisualisierung von Shakersort als Java Applet sortieralgorithmen de Abgerufen von https de wikipedia org w index php title Shakersort amp oldid 233938073