Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

ayuda con codigo radix sort

joaquinGpe99

Bovino adicto
Desde
2 Sep 2010
Mensajes
666
bueno consite en crear un metodo de ordenamieto de radix sorf.. con ayuda de papa google busque el codigo el cual le meti a mi porgrama y si corrio sin niun contratiempos, ahora el porblema es que por partes no compredo el codigo, puesto que el metodo de radix consiste en procesar digito por digito u.u y como no logro comprederle al codigo no puedo generar mi archivo de "pasadas", este archivo es un txt donde muetra como se fue haciendo los intercambios hasta ordenarlos.

ejemplo si tengo la cadena de numeros

34 12 15 17 50 98

el txt me muetra la cadena original y el ordenamieto_;

34 12 15 17 50 98
12 15 17 34 50 98

y pues no se si sea solo una pasada que se le da y lo ordena puesto que en el metodo de burbuja muetra mas pasadas de como lo va ordenando

bueno aqui les agrego el codigo, espero me lo puedan esplicar y decirme si el txt que me crea esta bien o esta mal:

public static void radixSort(int a[])
{
str_pasadas="";
if(a.length == 0)
return;

int[][] np = new int[a.length][2];
int[] q = new int[0x100];
int i,j,k,l,f = 0;
for(k=0;k<2;k++)

{ //for 1
for(i=0;i<(np.length-1);i++)
np[1] = i+1;
np[1] = -1;
for(i=0;i<q.length;i++)
q = -1;
for(f=i=0;i<a.length;i++)

{ //for 2
j = ((0xFF<<(k<<3))&a)>>(k<<3);
if(q[j] == -1)
{
l = q[j] = f;
}
else
{
l = q[j];
while(np[l][1] != -1)

l = np[l][1];
np[l][1] = f;
l = np[l][1];

}
f = np[f][1];
np[l][0] = a;
np[l][1] = -1;

}// fin for 2
//pasadas
for(int ic=0; ic < a.length; ic++ ){
str_pasadas += a[ic] + " ";

}
str_pasadas += "\n"; //fin de las pasadas

for(l=q[i=j=0];i<0x100;i++)
for(l=q;l!=-1;l=np[l][1])
a[j++] = np[l][0];
}//fin fort 1
ImprimirPasadas(str_pasadas, "C:/Users/Joaquin/Desktop/b,/radix.txt");

}
}
 
Volver
Arriba