待排序的元素中类型是已经确定的
例如 数据只有 A B C 三类数据
我们预定要将这些数据按照 A B C 的顺序进行排序
可定义三个变量对这三类数据进行区分
import java.math.* ;
import java.util.* ;
/**
*
*/
public class Test extends Base{
public static void main(String[] args) throws Exception{
int[] arr = getRandomArr() ;
println(arr);
stoogeSort(arr , arr.length );
println(arr);
println();
}
public static void stoogeSort(int[] arr, int n){
int begin = 0 , current = 0 , end = n - 1 ;
int temp ;
for (; current <= end ; ){
if(arr[current] == 0){
temp = arr[current] ;
arr[current] = arr[begin] ;
arr[begin] = temp ;
current++ ;
begin++ ;
}else if(arr[current] == 1){
current++;
}else if(arr[current] == 2){
temp = arr[current] ;
arr[current] = arr[end] ;
arr[end--] = temp ;
while(arr[end] == 2) end-- ;
}
}
}
}