Bogosort

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, szukaj
Bogosort
Rodzaj Sortowanie
Struktura danych Tablica
Złożoność
Czasowa О(n*n!)
Pamięciowa O(n)

Bogosortniestabilny, trywialny w działaniu algorytm sortowania o bardzo dużej złożoności obliczeniowej.

Spis treści

[edytuj] Zasada działania

Działanie algorytmu polega na ciągłym losowym ustawianiu sortowanych elementów i sprawdzaniu czy po wymieszaniu elementy są posortowane. Operacje mieszania powtarzane są aż do posortowania elementów. Aby posortować talię kart tym algorytmem należy wyrzucić talię w powietrze, pozbierać z podłogi i sprawdzić czy karty ułożyły się w oczekiwany porządek. Czynność powtarzamy aż do uzyskania oczekiwanego efektu[1].

[edytuj] Zastosowanie

Algorytm stosuje się głównie w celach edukacyjnych, aby uzyskać efekt kontrastu przy porównywaniu z innymi algorytmami. Nie jest używany w praktyce - posortowanie kilkunastu elementów może trwać bardzo długo i nie ma pewności, czy w ogóle się zakończy.

[edytuj] Złożoności

Średnia złożoność obliczeniowa wynośi O(n*n!). W przypadku pesymistycznym sortowanie będzie trwać w nieskończoność. Zajętość pamięci wynosi O(n).

[edytuj] Pseudokod

 funkcja bogosort(tablica)
   dopóki nie jest_posortowana(tablica)
     tablica := losowa_permutacja(tablica)

[edytuj] Implementacja

[edytuj] Odmiany

[edytuj] Bozo sort

Różnica pomiędzy Bogosortem a Bozosortem jest taka, że ten drugi - w przypadku, gdy elementy nie są jeszcze posortowane - zamienia miejscami dwa dowolne elementy i ponawia sprawdzanie porządku elementów.

[edytuj] Zobacz także

Przypisy

  1. Info o algorytmie Bogosort (ang.). [dostęp 2009-05-09].
Osobiste
Przestrzenie nazw
Warianty
Działania
Nawigacja
Dla czytelników
Dla wikipedystów
Drukuj lub eksportuj
Narzędzia
W innych językach