Bogosort/kod

Z Wikiźródeł, repozytorium wolnych materiałów źródłowych


Bogosort • Kod źródłowy
Bogosort
Kod źródłowy
Przykład implementacji algorytmu Bogosort
Wikipedia
Zobacz w Wikipedii hasło Bogosort

[edytuj] Java

public void bogoSort(int[] n) {
    Random random = new Random();
 
    mainloop: do {
        for (int i = 0; i < n.length; i++) {
            if(i == n.length-1) {
                break mainloop;
            }
            if (n[i] > n[i+1])  {
                break;
            }
        }
 
        for (int i = n.length - 1; i > 0; i--) {
            int swapPosition = random.nextInt(i + 1);
            int temp = n[i];
            n[i] = n[swapPosition];
            n[swapPosition] = temp;
        }
    } while (true);
}


[edytuj] Python

from random import shuffle
from itertools import izip, tee
 
def in_order(my_list):
    """Check if my_list is ordered"""
    it1, it2 = tee(my_list)
    it2.next()
    return all(a<=b for a,b in izip(it1, it2))
 
def bogo_sort(my_list):
    """Bogo-sorts my_list in place."""
    while not in_order(my_list):
        shuffle(my_list)


Udziela się zgody na kopiowanie, dystrybucję i/lub modyfikację tego tekstu na warunkach licencji GNU Free Documentation License w wersji 1.2 lub nowszej, opublikowanej przez Free Software Foundation.
Kopia tekstu licencji umieszczona została pod hasłem GFDL. Dostepne jest również jej polskie tłumaczenie.

Informacje o pochodzeniu tekstu możesz znaleźć w dyskusji tego tekstu.