Úvodní stránka | Tato stránka v originále

Bogosort

Shodovat se k Souboru žargonu, bogosort je “typický zvrhle hrozný algoritmus”, ekvivalent k opakovaně házet palubu kart ve vzduchu, osvojovat si je náhodně, a pak testovat zda oni jsou v pořádku. To je pojmenované po termínu humourous kvantové bogodynamics.

Tady je pseudokód algoritmu:

zatímco ne je _ třídil (sadu)
  sada: = náhodný _ obměna (sada)

Tento algoritmus třídění je probabilistic v přírodě. Jestliže všechny elementy být tříděn být zřetelný, očekávaná složitost je O (n × n!). Přesný očekávaný hrací čas závisí na kolika odlišném prvku ceny se udávají, a jak často každý je nastane, až na non-triviální případy očekávaný hrací čas je exponenciální nebo výborný-exponenciální v n.

To by mělo být si všiml toho s real-world pseudonáhodné číselné algoritmy, který mít konečné množství států, algoritmus může nikdy končit pro jisté vstupy.

Pokračování je realizace v C + +:

  1. obsahovat
  2. obsahovat

šablona bogosort nicoty (std:: vektora sada) {
   zatímco (! je _ třídil (sada )) std:: náhodný _ míchat (array.begin (), array.end ());
}

šablona bool je _ třídil (const std:: vektora sada) {

   pro (std typename:: vektor:: velikost _ psát i = 1; i 
}