www.wikidata.de-de.nina.az
Bogosort Monkeysort Dumbsort oder Stupidsort bezeichnet ein nicht stabiles Sortierverfahren bei dem die Elemente so lange zufallig gemischt werden bis sie sortiert sind Wegen der langen Laufzeit ist Bogosort der Prototyp eines schlechten Algorithmus Bogosort wird insbesondere in der Informatik Ausbildung in den Bereichen Datenstrukturen und Algorithmen verwendet um an einem Extrembeispiel die Eigenschaften von Sortierverfahren im Allgemeinen zu verdeutlichen 1 2 Inhaltsverzeichnis 1 Laufzeitverhalten 2 Code 2 1 Java 2 2 JavaScript 3 Einzelnachweise 4 WeblinksLaufzeitverhalten BearbeitenBogosort ist ein randomisierter Las Vegas Algorithmus daher ist dessen Laufzeit eine Zufallsvariable Die erwartete Laufzeit ist im besten Fall O n displaystyle mathcal O n nbsp angegeben in der Landau Notation sofern die angegebene Liste bereits sortiert ist und im schlechtesten Fall 8 n n displaystyle Theta n cdot n nbsp 3 Die Fakultat n displaystyle n nbsp ist die Anzahl der moglichen Anordnungen Permutationen n displaystyle n nbsp verschiedener Elemente Die Operation die am haufigsten ausgefuhrt wird und das Laufzeitverhalten bestimmt ist die Anzahl der Vertauschungen Erstaunlicherweise ist die erwartete Anzahl der Vergleiche die fur grosse Listen gegen e 1 n displaystyle e 1 cdot n nbsp strebt wesentlich geringer 3 Hierbei bezeichnet e displaystyle e nbsp die Eulersche Zahl In der Realitat kann die Laufzeit beliebig lang sein allerdings sind ubermassig lange Laufzeiten gemass der Markow Ungleichung auch entsprechend unwahrscheinlich Der Algorithmus kommt unter der Annahme echter Zufallszahlengeneratoren und einer endlichen Anzahl zu sortierender Elemente fast sicher d h mit Wahrscheinlichkeit 1 nach endlich vielen Schritten zu einem Ergebnis Das bedeutet dass es dennoch moglich ist dass der Algorithmus niemals terminiert Kommt ein Pseudozufallszahlengenerator zum Einsatz muss dessen Periode hinreichend lang sein sodass jede mogliche Permutation mindestens einmal generiert wird bevor sich die Folge wiederholt Code BearbeitenJava Bearbeiten class Main public static int sort int toSort Random r new Random while isSorted toSort Prufen ob sortiert int a r nextInt toSort length int b r nextInt toSort length int temp toSort a toSort a toSort b toSort b temp return toSort static boolean isSorted int arr for int i 0 i lt arr length 1 i if arr i gt arr i 1 return false return true JavaScript Bearbeiten function sort arr while isSorted var a Math floor Math random arr length var b Math floor Math random arr length var tmp arr a arr a arr b arr b tmp function isSorted for var i 0 i lt arr length 1 i if arr i gt arr i 1 return false return true Einzelnachweise Bearbeiten TU Berlin Informatik fur Elektrotechniker II Aufgabenblatt 5 Memento vom 13 Juni 2007 im Internet Archive Sommersemester 2005 University of Massachusetts Amherst CMPSCI 187 Introduction to Data Structures Discussion 11 Sorting and Graphs Memento des Originals vom 15 Januar 2014 imInternet Archive nbsp Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot twiki edlab cs umass edu 12 Juni 2006 a b H Gruber M Holzer und O Ruepp Sorting the Slow Way An Analysis of Perversely Awful Randomized Sorting Algorithms 4th International Conference on Fun with Algorithms Castiglioncello Italy 2007 Lecture Notes in Computer Science 4475 S 183 197 PDF Datei 193 kB Weblinks BearbeitenJargon File entry for bogo sort englisch Abgerufen von https de wikipedia org w index php title Bogosort amp oldid 232113093