Sie sind auf Seite 1von 11

Contenido

INTRODUCCION .............................................................................................................................. 4
HISTORIA .......................................................................................................................................... 5
METODO DE ORDENAMIENTO RADIX SORT ......................................................................... 5
EN QUE CONSISTE ESTE METODO ...................................................................................... 5
CARACTERISTICAS: .............................................................................................................. 5
ORDENAMIENTO POR RADIX INTERCAMBIO .................................................................... 6
CLASIFICASION ...................................................................................................................... 6
COMO FUNCIONA EL METODO DE ORDENAMIENTO RADIX SORT ................................ 7
INTRODUCCION

El método de ordenamiento radix sort es un algoritmo que ordena enteros


procesando sus dígitos de forma individual también estos enteros pueden formar
cadena de caracteres (pueden ser nombres o fechas) y especialmente números
este método trata especialmente de poder colocar los números de unidad, decena,
etc y colocarlo en una posición después en la decena se podrán ordenar así
sucesivamente pero también.
HISTORIA

Se dice que este método nació de la idea de Herman Hollerith en 1890 al crear la
maquina tabuladora, en la cual se empleaban tarjetas perforadas para realizar el
censo de ese año en Estados Unidos.
Al final, después de unas horas, la maquina entregaba todo un grupo de hojas listas
para ser procesadas en un computador.
En el censo de 1880 se tomaron 10 años para procesar toda la información, pero
con las tarjetas perforadas, en la máquina que incluía un “card sorter” se tomaron
cerca de 6 semanas.
La idea original de Hollerith era ordenar empezando por el digito más significativo.
Es de esta forma que surgió una maquina ordenadora de tarjetas. La cual, utilizando
el método de Radix-Sort, concatenaba cada hoja dependiendo de la ubicación de
las ultimas 3 columnas, que contenían las cifras para el acomodo de tarjetas,
estando numerado del 0 al 9.

METODO DE ORDENAMIENTO RADIX SORT

El algoritmo de Ordenamiento por bases o Radix Sort, ordena los números tomando
en cuenta el valor relativo que tienen las cifras o dígitos de un número en un
determinado sistema de numeración. Se pueden ir agrupando o contando los
números, desde las cifras menos significativas a las más significativas ó en sentido
contrario. El conteo o agrupación de los números se hace tomando en cuenta la
base del sistema de numeración que se elija para ordenar.
EN QUE CONSISTE ESTE METODO

Consiste en ir acomodando los números primero por unidades, luego por decenas,
centenas, etc. No hace comparaciones entre datos.

CARACTERISTICAS:

• El Radix trabaja en memoria principal y pertenece al grupo de intercambio.


• Efectúa sus operaciones sobre dígitos individuales de los números que
representan a las claves cuando estas pertenecen a un sistema numérico en
cualquier base.

• Este método se puede considerar como una generalización de la clasificación por


urnas.

• La idea clave de la ordenación radix-sort es clasificar por urnas primero respecto


al digito de menor peso hasta alcanzar el digito más significativo.
• Si la cantidad de dígitos es grande, en ocasiones es más eficiente ordenar el
archivo aplicando primero el ordenamiento de raíz a los dígitos más significativos y
después utilizando inserción directa sobre el archivo ordenado.

• La característica de este algoritmo está en que no hace comparaciones para


ordenar las listas, simplemente se encarga de ir contando o agrupando los
números que tengan el mismo valor relativo en determinada cifra.

ORDENAMIENTO POR RADIX INTERCAMBIO

El algoritmo se puede detallar como:

Clasificar las claves según su bit binario más significativo, de forma que todas las
claves que tengan un primer 0 estén antes de aquella Z.

Que tenga un primer 1.

En este paso ya se diferencia notablemente dos grupos, el formado por las claves
que comienzan con 0, y el formado por las claves que comienzan con 1. Ahora se
aplica de nuevo el primer paso a cada grupo formado pero con el bit siguiente.

Ordenamiento por radix directo.


Esta variante del ordenamiento Radix consiste en examinar los bits de la clave de
derecha a izquierda individualmente, e ir posicionando respectivamente de
acuerdo a su valor de clave.

CLASIFICASION

Existen dos clasificaciones de Radix Sort:

RADIX SORT LSD :

Procesa las representaciones de enteros empezando por el dígito menos


significativo y moviéndose hacia el dígito más significativo. (De derecha a
izquierda).
El método más aplicado de Radix, es el LSD, y se encarga de colocar los números
en una de las 10 colas que representan un digito cada una de ella, iniciando desde
la cola que controla el digito 0 hasta la cola que controla el digito 9, en estas colas
se colocan los números dependiendo del digito que se esté analizando en ese
momento, hasta que termine con el número que contenga la mayor cantidad de
dígitos, en cada cambio de digito los elementos se integran al arreglo nuevamente
desde la cola 0 hasta la cola 9, para elegir el siguiente digito de ordenamiento.
Cuando se efectúa este proceso para cada dígito al arreglo está ordenado.

RADIX SORT MSD:

Trabaja en sentido contrario.

- De derecha a izquierda y
- De izquierda a derecha.

 El Radix MSD procesa los enteros iniciando por el digito más significativo y
moviéndose al digito menos significativo (de izquierda a derecha).

 Usa orden léxico, que es ideal para la ordenación de cadenas de


caracteres, como las palabras o representaciones de enteros de longitud
fija.

COMO FUNCIONA EL METODO DE ORDENAMIENTO RADIX SORT

El más grande de dos enteros de igual longitud se determina del modo siguiente:

Empezar en el dígito más significativo y avanzar por los dígitos menos


significativos mientras coinciden los dígitos correspondientes en los dos números.

El número con el dígito más grande en la primera posición en la cual los dígitos
de los dos números no coinciden es el mayor de los dos (por supuesto sí
coinciden todos los dígitos de ambos números, son iguales).

Ordena el arreglo en una forma estable.


EJEMPLO:
Vector original:
 25 57 48 37 12 92 86 33
 Asignamos los elementos en colas basadas en el dígito menos significativo
de cada uno de ellos.
 0:
 1:
 2: 12 92
 3: 33
 4:
 5: 25
 6: 86
 7: 57 37
 8: 48
 9:
 Después de la primera pasada, la ordenación queda:
 12 92 33 25 86 57 37 48
 Colas basadas en el dígito más significativo.
 0:
 1: 12
 2: 25
 3: 33 37
 4: 485: 57
 6:
 7:
 8: 86
 9: 92
 Lista ordenada:
 12 25 33 37 48 57 86 92
ALGORITMO MÉTODO RADIX SORT

#include <iostream>
#include <conio.h>
using namespace std;
// maximo valor del arrglo
int getMax(int A[], int n)
{
int max = A[0];
for (int i = 1; i < n; i++)
if (A[i] > max)
max = A[i];
return max;
}
void countSort(int A[], int n, int exp)
{
int output[100], i, count[10]={0};
for (i = 0; i < n; i++)
count[(A[i] / exp) % 10]++; // determinando de cuantas cifras es el
maximo numero
for (i = 1; i < 10; i++)
count[i] += count[i-1]; // exp % 10].
for (i = n - 1; i >= 0; i--)
{
output[count[(A[i] / exp) % 10] - 1] = A[i];
count[(A[i] / exp) % 10]--;
} // asignado el puntero exp
for (i = 0; i < n; i++)
A[i] = output[i];//cargando al arreglo A
}
// llamando al programa radix sort
void radixsort(int A[], int n)
{
int exp, m;
m = getMax(A, n); // llamando al countSort() para ver cual es el numero
mayor
for (exp = 1; m/exp > 0; exp *= 10)
countSort(A, n, exp);
}
int main()
{
int n,i;
cout<<"INGRESE LA DIMENSION DEL ARREGLO "<<endl;
cout<<"n = ";
cin>>n;
cout<<"ingrese los elementos desordenados "<<endl;
int A[100];
for(i = 0; i < n; i++)
{
cout<<"A["<<i<<"]=";
cin>>A[i];
}
radixsort(A, n);
cout<<" imprimiendo los elementos ordenados "<<endl;
for (i = 0; i < n; i++)
cout<<"A["<<i<<"]="<<A[i]<<endl;

return 0;
}

Das könnte Ihnen auch gefallen