import java.math.* ;
import java.util.* ;
/**
*
*/
public class Test extends Base{
public static void main(String[] args) throws Exception{
int[] arr = getRandomArr() ;
println(arr);
println(arr.length) ;
int[] temp = new int[arr.length] ;
bucketSort(arr , arr.length, 99 );
println(arr);
println();
}
public static void bucketSort(int[] arr , int n , int maxValue){
LinkedList<Integer>[] bucket = new LinkedList[n] ;
int pos;
for (int i = 0; i < n ; i++ ){
pos = arr[i] * n / (maxValue + 1) ;
if(bucket[pos] == null || bucket[pos].size() < 1){
LinkedList<Integer> link = new LinkedList<Integer>() ;
link.add(arr[i]) ;
bucket[pos] = link ;
continue;
}
LinkedList<Integer> link = bucket[pos] ;
int size = link.size() ;
for (int j = 0 ; j < size; j++){
if(link.get(j) > arr[i]){
link.add(j, arr[i]);
break;
}
}
if(size == link.size())
link.add(arr[i]);
}
println();
int temp = 0 ;
for (int k = 0 ; k < n ; k++){
LinkedList<Integer> list = bucket[k] ;
if (list != null && list.size() >0){
for (int j = 0 ; j < list.size() ; j++){
print(j + " :" + list.get(j) + " ") ;
print("(" + temp + ")");
arr[temp++] = list.get(j);
}
println();
}
}
}
}
桶排序
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.