/** * Programa que implementa el algoritmo de ordenamiento RadixSort * para numeros enteros * @author Amparo López Gaona * @version 1a. ed. */ class RadixSort { public static void radixSort(int[] datos) { boolean continuar = true; int divisor = 1; ListaF[] cubetas = new ListaF[10]; for (int i = 0; i < 10; i++) // Crea las cubetas cubetas[i] = new ListaF(); while(continuar) { continuar = false; for (int i = 0; i < datos.length; i++) { int indice = (datos[i] / divisor) %10; if (indice > 0) continuar = true; cubetas[indice].agregar(new Integer(datos[i])); } //Regresa los elementos al arreglo divisor *= 10; int i = 0; for (int j = 0; j <10; j++) while(!cubetas[j].estaVacia()){ Integer ival = (Integer)cubetas[j].primerElemento(); cubetas[j].eliminarPrimero(); datos[i++] = ival; } } } public static void main (String [] xx) { int [] datos = {624, 762,852,426,197,987,269,146,415,301,730,78,593}; radixSort(datos); for (int i = 0; i