Visualization of Stooge sort.


Class  Sorting algorithm 

Data structure  Array 
Worst case performance  O(n^{log 3 /log 1.5}) 
Worst case space complexity  O(n) 
Stooge sort is a recursive sorting algorithm with a time complexity of O(n^{log 3 / log 1.5} ) = O(n^{2.7095...}). The running time of the algorithm is thus slower compared to efficient sorting algorithms, such as Merge sort, and is even slower than Bubble sort, a canonical example of a fairly inefficient and simple sort.
The algorithm is defined as follows:
 If the value at the end is smaller than the value at the start, swap them.
 If there are more than 1 elements between start and end of the list, then:
 Stooge sort the initial 2/3 of the list
 Stooge sort the final 2/3 of the list
 Stooge sort the initial 2/3 of the list again
 else: exit the procedure
The algorithm gets its name from slapstick routines of the Three Stooges, in which each stooge hits the other two.^{[citation needed]}
Implementation[edit]
function stoogesort(array L, i = 0, j = length(L)1) if L[j] < L[i] then L[i] ↔ L[j] if (j  i + 1) > 2 then t = (j  i + 1) / 3 stoogesort(L, i , jt) stoogesort(L, i+t, j ) stoogesort(L, i , jt) return L
References[edit]
 Black, Paul E. "stooge sort". Dictionary of Algorithms and Data Structures. National Institute of Standards and Technology. Retrieved 20110618.
 Cormen, Thomas H.; Leiserson, Charles E., Rivest, Ronald L., Stein, Clifford (2001) [1990]. "Problem 73". Introduction to Algorithms (2nd ed.). MIT Press and McGrawHill. pp. 161–162. ISBN 0262032937.
External links[edit]
 Everything2.com – Stooge sort
 Sorting Algorithms (including Stooge sort)
 Stooge sort – implementation and comparison

This computer science article is a stub. You can help Wikipedia by expanding it. 
This page uses Creative Commons Licensed content from Wikipedia. A portion of the proceeds from advertising on Digplanet goes to supporting Wikipedia.