Ordenamiento por el método raíz en C++
''La idea clavede la ordenación Radixsort (también llamada por residuos) es clasificar por urnas
primero respecto al dígito de menor peso (menos significativo) dk, después concatenar las
urnas,clasificar de nuevo respecto al siguiente dígito dk−1, y así sucesivamente se sigue con el
siguiente dígito hasta alcanzar el dígito más significativo dl, en ese momento la secuenciaestará
ordenada. La concatenación de las urnas consiste en enlazar el final de una con el frente de la
siguiente.
Al igual que en el método de Binsort, las urnas se representan medianteun vector de listas. En el
caso de que la clave respecto a la que se ordena sea un entero, se tendrán 10 urnas, numeradas de 0
a 9. Si la clave respecto a la que se ordena esalfabética, habrá tantas urnas como letras distintas,
desde la urna que represente a la letra a hasta la z.
Para el caso de que clave sea entera, en primer lugar se determina el máximonúmero de dígitos
que puede tener la clave. En un bucle de tantas iteraciones como máximo de dígitos se realizan las
acciones de distribuir por urnas los registros, concatenar...
Ladistribución por urnas exige obtener el dígito del campo clave que se encuentra en la posición
definida por el bucle externo, dicho dígito será el índice de la urna.''
#include#include
#include
#define maxV 10
int numeroDigitos(int n)
{
int contador;
contador=0;
while(n!=0)
{
n=n/10;
contador++;
}
return contador;
}
intnumMaxDigitos(int v[], int lim)
{
int max=0;
int dig=0;
for(int i=0; i max)
max=dig;
}
return max;
}
void mostrarVector(int v[], int lim)
{
for(int i=0; i
Regístrate para leer el documento completo.