<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Bogosort</id>
	<title>Bogosort - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Bogosort"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Bogosort&amp;action=history"/>
	<updated>2026-06-04T11:28:25Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Bogosort&amp;diff=81694&amp;oldid=prev</id>
		<title>imported&gt;Duschgeldrache2: Archivlink geprüft</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Bogosort&amp;diff=81694&amp;oldid=prev"/>
		<updated>2026-02-20T20:51:51Z</updated>

		<summary type="html">&lt;p&gt;Archivlink geprüft&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Bogosort&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Pogosort&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Dumbsort&amp;#039;&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;&amp;#039;Stupidsort&amp;#039;&amp;#039;&amp;#039; (auch &amp;#039;&amp;#039;&amp;#039;Omarsort&amp;#039;&amp;#039;&amp;#039;) bezeichnet ein nicht-[[Stabilität (Sortierverfahren)|stabiles]] [[Sortierverfahren]], bei dem die Elemente so lange [[Zufällige Permutation|zufällig gemischt]] werden, bis sie sortiert sind. Wegen der langen Laufzeit ist &amp;#039;&amp;#039;Bogosort&amp;#039;&amp;#039; der Prototyp eines schlechten [[Algorithmus]]. Bogosort wird insbesondere in der Informatik-Ausbildung in den Bereichen  [[Datenstruktur]]en und Algorithmen verwendet, um an einem Extrembeispiel die Eigenschaften von Sortierverfahren im Allgemeinen zu verdeutlichen.&amp;lt;ref&amp;gt;[[TU Berlin]]: {{Webarchiv | url=http://uebb.cs.tu-berlin.de/infet/SS05/blatt5.pdf| wayback=20070613075034|text= Informatik für Elektrotechniker II – Aufgabenblatt 5}}, Sommersemester 2005&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[[University of Massachusetts Amherst]]: &amp;#039;&amp;#039;{{Webarchiv|url=http://twiki-edlab.cs.umass.edu/pub/_S2007Hanson187/DiscussionSheets/disc11.pdf |wayback=20140115051946 |text=CMPSCI 187 Introduction to Data Structures – Discussion #11: Sorting and Graphs. }}&amp;#039;&amp;#039; 12. Juni 2006&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Laufzeitverhalten ==&lt;br /&gt;
Bogosort ist ein (randomisierter) [[Las-Vegas-Algorithmus]], daher ist dessen [[Laufzeit (Informatik)|Laufzeit]] eine [[Zufallsvariable]]. Die [[Erwartungswert|erwartete]] Laufzeit ist im besten Fall &amp;lt;math&amp;gt;\mathcal{O}(n)&amp;lt;/math&amp;gt; (angegeben in der [[Landau-Symbole|Landau-Notation]]) sofern die angegebene Liste bereits sortiert ist und im schlechtesten Fall &amp;lt;math&amp;gt;\Theta(n \cdot n!)&amp;lt;/math&amp;gt;.&amp;lt;ref name=&amp;quot;Fun07&amp;quot;&amp;gt;H. Gruber, M. Holzer und O. Ruepp: &amp;#039;&amp;#039;[http://www.hermann-gruber.com/pdf/fun07-final.html Sorting the Slow Way: An Analysis of Perversely Awful Randomized Sorting Algorithms.]&amp;#039;&amp;#039; 4th International Conference on Fun with Algorithms, Castiglioncello, Italy, 2007, Lecture Notes in Computer Science 4475, S. 183–197 (PDF; 193&amp;amp;nbsp;kB).&amp;lt;/ref&amp;gt; Die [[Fakultät (Mathematik)|Fakultät]] &amp;lt;math&amp;gt;n!&amp;lt;/math&amp;gt; ist die Anzahl der möglichen Anordnungen ([[Permutation]]en) &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; verschiedener Elemente. Die Operation, die am häufigsten ausgeführt wird und das Laufzeitverhalten bestimmt, ist die Anzahl der Vertauschungen. Erstaunlicherweise ist die erwartete Anzahl der Vergleiche, die für große Listen gegen &amp;lt;math&amp;gt;(e-1) \cdot n!&amp;lt;/math&amp;gt; strebt, wesentlich geringer.&amp;lt;ref name=&amp;quot;Fun07&amp;quot;/&amp;gt; Hierbei bezeichnet &amp;lt;math&amp;gt;e&amp;lt;/math&amp;gt; die [[Eulersche Zahl]].&lt;br /&gt;
&lt;br /&gt;
In der Realität kann die Laufzeit beliebig lang sein, allerdings sind übermäßig lange Laufzeiten gemäß der [[Markow-Ungleichung (Stochastik)|Markow-Ungleichung]] auch entsprechend unwahrscheinlich. Der Algorithmus kommt unter der Annahme echter [[Zufallszahlengenerator]]en und einer endlichen Anzahl zu sortierender Elemente [[Fast sichere Eigenschaften|fast sicher]], d.&amp;amp;nbsp;h. mit Wahrscheinlichkeit 1, nach endlich vielen Schritten zu einem Ergebnis. Das bedeutet, dass es dennoch möglich ist, dass der Algorithmus niemals terminiert. Kommt ein [[Pseudozufallszahlengenerator]] zum Einsatz, muss dessen Periode hinreichend lang sein, sodass jede mögliche Permutation mindestens einmal generiert wird, bevor sich die Folge wiederholt.&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
===  Pseudocode ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
while not sorted(deck):&lt;br /&gt;
  shuffle(deck)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
from random import shuffle&lt;br /&gt;
&lt;br /&gt;
def bogosort(data: list) -&amp;gt; list:&lt;br /&gt;
    while not all(a &amp;lt;= b for a, b in zip(data, data[1:])):&lt;br /&gt;
        shuffle(data)&lt;br /&gt;
    return data&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Java ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
class Main {&lt;br /&gt;
	public static int[] sort(int[] toSort) {&lt;br /&gt;
		Random r = new Random();&lt;br /&gt;
	&lt;br /&gt;
		while (!isSorted(toSort)) { // Prüfen, ob sortiert&lt;br /&gt;
			int a = r.nextInt(toSort.length);&lt;br /&gt;
			int b = r.nextInt(toSort.length);&lt;br /&gt;
&lt;br /&gt;
			int temp = toSort[a];&lt;br /&gt;
			toSort[a] = toSort[b];&lt;br /&gt;
			toSort[b] = temp;&lt;br /&gt;
		}&lt;br /&gt;
		return toSort;&lt;br /&gt;
	}&lt;br /&gt;
	static boolean isSorted(int[] arr) {&lt;br /&gt;
        for(int i = 0; i &amp;lt; arr.length - 1; i++) {&lt;br /&gt;
            if (arr[i] &amp;gt; arr[i + 1]) return false;&lt;br /&gt;
        }&lt;br /&gt;
        return true;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== JavaScript ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
function sort(arr) {&lt;br /&gt;
    while(!isSorted()) {&lt;br /&gt;
        var a = Math.floor(Math.random() * arr.length);&lt;br /&gt;
        var b = Math.floor(Math.random() * arr.length);&lt;br /&gt;
        var tmp = arr[a];&lt;br /&gt;
        arr[a] = arr[b];&lt;br /&gt;
        arr[b] = tmp;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function isSorted() {&lt;br /&gt;
        for(var i = 0; i &amp;lt; arr.length - 1; i++) {&lt;br /&gt;
            if (arr[i] &amp;gt; arr[i + 1]) return false;&lt;br /&gt;
        }&lt;br /&gt;
        return true;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== C ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
inline void swap(register int *a, register int *b) {&lt;br /&gt;
  register int temp = *a;&lt;br /&gt;
  *a = *b;&lt;br /&gt;
  *b = temp;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int isSorted(int arr[], size_t n) {&lt;br /&gt;
  for (size_t i = 0; i &amp;lt; n - 1; ++i)&lt;br /&gt;
    if (arr[i] &amp;gt; arr[i + 1])&lt;br /&gt;
      return 0;&lt;br /&gt;
&lt;br /&gt;
  return 1;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void shuffle(int arr[], size_t n) {&lt;br /&gt;
  for (size_t i = n - 1; i &amp;gt; 0; --i) {&lt;br /&gt;
    int j = rand() % (i + 1);&lt;br /&gt;
    swap(&amp;amp;arr[i], &amp;amp;arr[j]);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void bogoSort(int arr[], size_t n) {&lt;br /&gt;
  while (!isSorted(arr, n))&lt;br /&gt;
    shuffle(arr, n);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.catb.org/jargon/html/B/bogo-sort.html Jargon File entry for &amp;#039;&amp;#039;bogo-sort&amp;#039;&amp;#039;] (englisch)&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Sortieralgorithmus]]&lt;br /&gt;
[[Kategorie:Wissenschaftlicher Witz]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Duschgeldrache2</name></author>
	</entry>
</feed>