基数排序

来源:互联网 发布:暴雪游戏平台 mac版 编辑:程序博客网 时间:2024/06/05 22:52
import java.math.* ;import java.util.* ;/** *  */public class Test extends Base{public static void main(String[] args) throws Exception{int[] arr = getRandomArr() ;println(arr);  radixSort(arr , arr.length );println(arr);println();}public static void radixSort(int[] arr, int n ){int BASE = 10 ;int exp = 1 ;int[] radix = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0} ;int[] temp = new int[n] ;int max = arr[0] , r = 1;for (int i = 1 ; i < n; i++){if(arr[i] > max) max = arr[i] ;} int pos , div = 1;while(max/exp > 0){ for (int i = 0 ; i < n ; i++){ radix[(arr[i] / exp) % BASE] += 1; } for (int i = 1 ; i < n ; i++){radix[i] += radix[i-1] ;} for (int i = n - 1 ; i >= 0 ; i--){radix[(arr[i] / exp) % BASE] -= 1;temp[radix[(arr[i] / exp) % BASE]] = arr[i] ; }  for (int i = 0 ; i < n ; i++ ){arr[i] = temp[i] ;} for (int i = 0 ; i < BASE ; i++){radix[i] = 0 ;}exp *= BASE ;}}}

0 0
原创粉丝点击