Stooge sort
From Wikipedia, the free encyclopedia
![]() Visualization of Stooge sort. |
|
| Class | Sorting algorithm |
|---|---|
| Data structure | Array |
| Worst case performance | O(nlog 3 /log 1.5) |
| Worst case space complexity | O(n) |
Stooge sort is a recursive sorting algorithm with a time complexity of O(nlog 3 / log 1.5 ) = O(n2.7095...). The running time of the algorithm is thus extremely slow 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 three or more elements in the current list subset, 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]
[edit] Implementation
algorithm stoogesort(array L, i = 0, j = length(L)-1) if L[j] < L[i] then L[i] ↔ L[j] if (j - i + 1) >= 3 then t = (j - i + 1) / 3 stoogesort(L, i , j-t) stoogesort(L, i+t, j ) stoogesort(L, i , j-t) return L
[edit] References
- Black, Paul E.. "stooge sort". Dictionary of Algorithms and Data Structures. National Institute of Standards and Technology. http://www.nist.gov/dads/HTML/stoogesort.html. Retrieved 2011-06-18.
- Cormen, Thomas H.; Leiserson, Charles E., Rivest, Ronald L., Stein, Clifford (2001) [1990]. "Problem 7–3". Introduction to Algorithms (2nd ed.). MIT Press and McGraw-Hill. pp. 161–162. ISBN 0-262-03293-7.
[edit] External links
- 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. |
