Science Fair Project Encyclopedia
Stooge sort
Stooge sort is a recursive sorting algorithm with a time complexity of about O(n2.7). The exponent's exact value is log(3)/log(1.5).
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 2 or more elements in the current list subset, then: (or else, exit procedure)
- Sort the initial 2/3 of the list
- Sort the final 2/3 of the list
- Sort the initial 2/3 of the list again
Implementations
This sort implemented in Java:
// Interfacing method (to invoke the internal method with the correct initial values)
void stoogeSort(int[] a){
stoogeSort(a,0,a.length);
}
// Internal method
void stoogeSort(int[] a,int s,int e){
if(a[e-1]<a[s]){
int temp=a[s];
a[s]=a[e-1];
a[e-1]=temp;
}
int len=e-s;
if(len>1){
int third=len/3; // Reminder: This is (truncated) integer division
stoogeSort(a,s,e-third);
stoogeSort(a,s+third,e);
stoogeSort(a,s,e-third);
}
}
External links
09-23-2007 01:00:40
The contents of this article is licensed from www.wikipedia.org under the GNU Free Documentation License. Click here to see the transparent copy and copyright details
The contents of this article is licensed from www.wikipedia.org under the GNU Free Documentation License. Click here to see the transparent copy and copyright details


