CSDN博客

img lastsweetop
博客专家

算法-----基数排序

发表于2008/9/29 15:34:00  707人阅读

分类: 算法

  1. package com.eshore.sweetop.sort;
  2. import java.util.Arrays;
  3. public class Radix {
  4.     public static int[] sort(int[] a,int d){
  5.         int[] b=new int[a.length];
  6.         for (int i = 0; i < d; i++) {
  7.             
  8.             int[] c=new int[10];
  9.             for (int j = 0; j < a.length; j++) {
  10.                 int x=getBase(a[j],i);
  11.                 c[x]=c[getBase(a[j],i)]+1;
  12.             }
  13.             for (int j = 1; j < c.length; j++) {
  14.                 c[j]=c[j-1]+c[j];
  15.             }
  16.             for (int j = b.length-1; j >-1 ; j--) {
  17.                 b[c[getBase(a[j],i)]-1]=a[j];
  18.                 c[getBase(a[j],i)]=c[getBase(a[j],i)]-1;
  19.             }
  20.             for (int j = 0; j < b.length; j++) {
  21.                 a[j]=b[j];
  22.             }
  23.         }
  24.         return b;
  25.     }
  26.     
  27.     private static int getBase(int a,int b){
  28.         return (a/powten(b))%10;
  29.     }
  30.     
  31.     private static int powten(int n){
  32.         int r=1;
  33.         for (int i = 0; i < n; i++) {
  34.             r*=10;
  35.         }
  36.         return r;
  37.     }
  38.     
  39.     public static void main(String[] args) {
  40.         int[] a={12,73,34,42,23,66,71,29,34,85};
  41.         a=sort(a,2);
  42.         System.out.println(Arrays.toString(a));
  43.     }
  44. }
0 0

相关博文

我的热门文章

img
取 消
img