Stooge sort is a topic that has captured the attention of many people in recent times. With its relevance and topicality, it has become a topic of general interest for a wide range of audiences. From its impact on society to its implications in various areas, Stooge sort has generated debate and reflection in different sectors. In this article, we will explore the different facets of Stooge sort and its influence on our daily reality.
![]() Visualization of Stooge sort (only shows swaps). | |
| Class | Sorting algorithm |
|---|---|
| Data structure | Array |
| Worst-case performance | |
| Worst-case space complexity | |
Stooge sort is a recursive sorting algorithm. It is notable for its exceptionally poor time complexity of = The algorithm's running time is thus slower compared to reasonable sorting algorithms, and is slower than bubble sort, a canonical example of a fairly inefficient sort. It is, however, more efficient than Slowsort. The name comes from The Three Stooges.[1]
The algorithm is defined as follows:
It is important to get the integer sort size used in the recursive calls by rounding the 2/3 upwards, e.g. rounding 2/3 of 5 should give 4 rather than 3, as otherwise the sort can fail on certain data.
function stoogesort(array L, i = 0, j = length(L)-1){
if L > L then // If the leftmost element is larger than the rightmost element
swap(L,L) // Then swap them
if (j - i + 1) > 2 then // If there are at least 3 elements in the array
t = floor((j - i + 1) / 3)
stoogesort(L, i, j-t) // Sort the first 2/3 of the array
stoogesort(L, i+t, j) // Sort the last 2/3 of the array
stoogesort(L, i, j-t) // Sort the first 2/3 of the array again
return L
}