Esque ya me tarde y canse en buscrale y no le encuentro, esta un poco raro, es que no me nase en un algoritmo para crearlo. Echenme la mano porfas..
Código:
public class RadixShort{
int Ncolas=10;// numero de colas o arreglos necesarios
int maxAlmacColas=15; //numero max que almacenan
int arregloColas[][];
int numeroPasadas=0;
public RadixShort(){}
int NumerosArreglo;
int divisorAuxiliar=1;
public void creandoArregloColas(){
arregloColas=new int[Ncolas][maxAlmacColas];
}
public void analisisNumeros(int numeros[]){
int temp;
String NumString;
NumerosArreglo=numeros.length;
for(int x=0;x<NumerosArreglo;x++){
NumString=Integer.toString(numeros[x]);
temp=NumString.length();
if(numeroPasadas<temp){
numeroPasadas=temp;
}
}
for(int y=0;y<numeroPasadas-1;y++){
divisorAuxiliar=divisorAuxiliar*10;
}
}
public void realizarOrdenamiento(int numeros[]){
int ordenTemN[]=new int[NumerosArreglo];
for(int analisiN=numeroPasadas;analisiN>0;analisiN--){
for(int arregloN=0;arregloN<arregloColas.length;arregloN++){
int casillas=0;
for(int n=0;n<NumerosArreglo;n++){//evalua los numeros arreglo[] de numeros
int modulo=0;
int divicion=0;
int divAux=divisorAuxiliar;
int numenPos;
boolean bandera=true;
int v=0;
for(int x=1;x<=numeroPasadas;x++){//3 vueltas
if(bandera==true){
divicion=numeros[n]/divAux;
modulo=numeros[n]%divAux;
numenPos=divicion;//agrego
}else{
divicion=modulo/divAux;
modulo=modulo%divAux;
numenPos=divicion;//agrego a otra variable
}
if(x==analisiN){
if(arregloN==numenPos){//aki comparas el numero con la pos Arreglo o Cola al k Pertenece
arregloColas[arregloN][casillas]=numeros[n];
System.out.println("-arregloN: "+arregloN+": "+arregloColas[arregloN][casillas]);
casillas++;
v++;
}
}
divAux=divAux/10;
bandera=false;
}//for centro
}//for arreglos
}//arreglo de colas o matriz
int contTemp=0;
System.out.println("GUARDANDO EN ARRAY TEMPORAL");
for(int colaN=0;colaN<arregloColas.length;colaN++){
System.out.println("Posicion"+colaN);
for(int casilla=0;casilla<arregloColas[0].length;casilla++){
if(arregloColas[colaN][casilla]!=0){
System.out.println(arregloColas[colaN][casilla]);
ordenTemN[contTemp]=arregloColas[colaN][casilla];
contTemp++;
}
}
//System.out.println("\n");
}
numeros=ordenTemN;
}
}
public static void main(String arg[]){
RadixShort radix=new RadixShort();
int numeros[]={235,245,322,349,567,424,134,828,510};
radix.creandoArregloColas();
radix.analisisNumeros(numeros);
radix.realizarOrdenamiento(numeros);
}
}
Gracias de Antemano.