metodo de ordenacion radix

sandra navarro
19 de Enero del 2009
necesito ayuda alguien que me pudiera proporcional algun programa en c con el metodo de ordenacion radix

gracias se los voy a agradecer

noel solw
19 de Enero del 2009
Estimada Sandra, aqui va el programa de ordenacion por el metodo Radix

// program k4_12.CPP - page 73
// radix sort.
// c++ exercices book - dr. gershon kagan (first edition : 2001)
// written in Borland CPP ver 3.1

#include <conio.h>
#include <iostream.h>
#include <iomanip.h>
#include <stdlib.h>

#define MAX 18
#define MAX_DIGIT 3

void Show(int *a)
{
for(int i = 0; i < MAX; i++)
cout << setw(4) << a[i];
cout << endl;
} // SHOW

void Init(int *a)
{
for(int i = 0; i < MAX; i++)
a[i] = random(999) + 1;
} // INIT

void Swap(int &a,int &b)
{
int c = a;
a = b;
b = c;
} // SWAPS INTEGER

void RadixSort(int *a) // for integer values MAX_DIGIT lenght
{
int aux[10][MAX],index[MAX];
for(int i = 0; i < 10; i++)
{
index[i] = 0;
for(int j = 0; j < MAX; j++)
aux[i][j] = 0;
}
for(int z = 0; z < MAX_DIGIT; z++)
{
for(i = 0; i < MAX; i++)
{
int digit = a[i];
for(int x = z; x; x--)
digit /= 10;
digit %= 10;
aux[digit][index[digit]++] = a[i];
}
int k = 0;
for(i = 0; i < 10; i++)
{
int j = 0;
while(aux[i][j])
{
a[k++] = aux[i][j];
aux[i][j++] = 0;
}
index[i] = 0;
}
Show(a);
}
cout << endl;
} // RADIX SORT

void main()
{
clrscr();
randomize();
int a[MAX];
cout << "radix sort : " << endl << endl;
Init(a);
Show(a);
cout << endl;
RadixSort(a);
Show(a);
cout << endl << "end of program - good bye ! ! !n";
getch();
} // MAIN


adalid
19 de Enero del 2009
Oye noel, el programa radix que es lo que en si trata de hacer es que la verdad no se mucho de programacion, pero tengo una exposicion sobre el radix y si me podrias decir mas o menos que es lo que hace, ok. ya lo corri el que mandaste pero me apoarecen tres errores se los quite y me aparecen ceros y unos. algo asi como 10001

gg
19 de Enero del 2009
Con cualquier compilador que no este obsoleto (que produzca codigo de 32 bits).

noel solw
19 de Enero del 2009
Mi estimado Adalid:

El metodo radix, para numeros positivos, trabaja se la siguiente manera:

[a] : en la primera pasada dividimos el array en 10 grupos, de acuerdo a la cifra de las unidades.
Colocamos los grupos de vuelta al array, obteniendo en primera instancia una ordenacion de acuerdo a la ultima cifra de los numeros : primero todo los que terminan en 0, luego los terminados en 1, etc,etc.

[2] : volvemo al array, realizando el p rocedemiento para la segunda cifra significativa.

[3] : Y asi seguimos, con la tercera,cuarta, quinta, etc.
de acuerdo a tipo de integral que utilizamos.
Para int alcanzan 5 lugares.

Espero haber sido suficientemente claro. Si te quedan dudas, pregunta por favor.

Una pregunta : con que compilador trabajas que se
producieron tantos errores ?

cjperez
19 de Enero del 2009
necesito información sobre el metodo radix sort, toda la que tengan aplicado sobre C#

Gracias quedaré muy agradecida


27 de Noviembre del 2016

Hola Noel buen día, muchas gracias por el codigo lo estaba buscando, entiendo el metodo radix y todo, pero el codigo me es un poco dificil de entenderlo, me podrias hacer favor de explicarmelo mas a detalle?? 

 

muchas gracias y que tengas un buen dia