1
« en: Domingo 18 de Noviembre de 2007, 00:08 »
TENGO ESTE CODIGO QUE ES PARA EL ORDENAMIENTO RADIX PERO NO SE SI ESTE BIEN NECESITO DE SU AYUDA PARA SABER SI ESTA BIEN .
LES PIDO DE FAVOR QUE ME AYUDEN
//Capturar
num=Integer.valueOf(JOptionPane.showInputDialog(this,"Cuantos números deseas ingresar? "));
if(final1!=num)
final1=final1+1;
a[final1]=Integer.valueOf(JOptionPane.showInputDialog(this,"Introduce los números a ordenar"));
if(final1==1){
frente1=1;
}
//Procedimiento
public void radix( int x[], int n )
int frente1[10], final1[10];
struc{
int info;
int next;
}
public int a=new int [10];
int exp, aux, i, j, k, p, q, y;
for(i=0; i < n-1; i++){
a.info=x;
a.next=i+1;
}
a[n-1].info=x[n-1];
a[n-1].next= -1;
aux=0;
for(k=1; k < 5 ;k++) {
for(i=0;i<10;i++){
final1= -1;
frente1=-1;
}
while(aux!= -1){
p=aux;
aux=a[aux].next;
y=a[p].info;
exp=pow(10,k-1);
j=(y/exp)%10;
q=final1[j];
if(q == -1)
frente[j]=p;
else{
a[q].next=p;
final1[j]=p;
}
}
for(j=0; j < 10 && frente1[j]= -1; j++){
aux=frente1[j];
}
while(j<=9){
for(i=j+1; i < 10 && frente1= -1; i++){
if(i<=9){
p=i;
a[final1[ j ] ].next = frente1[ i ];
}
j=i;
}
a[final1[ p ] ].next = -1;
}
}
for(i=0; i < n; i++){
x= a[aux].info;
aux=a[aux].next;
}
}
// Ordenamiento
radix(x,n);
JOptionPane.showMessageDialog(this,"Ordenamiento Radix: " + radix);