Bogosort

Bogosort is an esoteric sorting algorithm that has an average case of $$O(n \times n!)$$, and an unbounded worst case. It is unstable, and not adaptive.

Algorithm
To Bogosort an array, check if the array is sorted. If it is sorted, terminate. Otherwise shuffle the array and repeat until the array is sorted.

Example
Take the array.

Unsorted: Shuffle it.

[6 4 1 2 3 5]

Unsorted: Shuffle it.

[1 2 6 3 5 4]

Continue until array is sorted.

[2 6 4 5 1 3] [3 4 5 2 6 1]    ... [1 2 3 4 5 6]

Sorted!

Pseudocode
procedure bogosort(array arr) do while not isSorted(arr) do shuffle(arr) end while end

Bozosort
This works by checking if the list is sorted, and if not, swaps two random elements instead. Its best, average, and worst case are $$O(n)$$, $$O(n!)$$, $$O(\infty)$$ respectively.

Bogobogosort
A recursive impractical algorithm, which calls itself with a copy of the list, and sorts all but the last element of the copy using Bogobogosort. The single element is always returned. Then, it checks if the maximal element of the copy is less than or equal to the last element of the current copy of the list. If not, shuffle the current copy and redo the recursive check. Otherwise, check to see if the ordering of the original matches the copy of the list. If so, that list is done, otherwise, shuffle and repeat everything.

Bogobogobogosort
An algorithm by EilrahcF, the algorithm works by generating a random permutation of the input list, and Bogobogosorts the array until the generated permutation matches (The algorithm may need to be modified to work in this case). In which it checks if it is sorted, and redoes the algorithm again otherwise, until it matches the permutation and is also sorted.