Si bien se habla de digitos (unidades, decenas, centenas, etc), para un computador es más eficiente hacer las operaciones a nivel de bit, con desplazamientos, que las operaciones de división y residuo. Por tal motivo, la implementación que se presenta a continuación utiliza corrimientos de 4 bits, que se pueden representar como dígitos hexadecimales.
public static void ordenacionResiduos(int[] v) { int max = 1; // cantidad de repeticiones int nbytes = 4; // numero de bytes a desplazar int nColas = (int) Math.pow(2,nbytes) ; // Creación e inicialización del arreglo de colas Queue<Integer>[] cola = new LinkedList[nColas]; for(int i=0; i<nColas; i++) cola[i]=new LinkedList<Integer>(); int div = 0; // posición a comparar for(int i=0; i<max; i++) { // parte 1: recorrer el vector para guardar cada elemento // en la cola correspondiente for(int numero: v) { // buscar el mayor número del vector if(i==0) if(numero>max) max=numero; // calcular en qué cola debe ir cada número int numCola = (numero>>div) & 0xf; cola[numCola].add(numero); } div = div+nbytes; // parte 2: recorrer las colas en orden para poner cada // elemento en el vector; int j=0; for(Queue<Integer> c: cola) { while(!c.isEmpty()) v[j++]=c.remove(); } // la primera vez se actualiza el número de veces que se // debe ejecutar el proceso if(i==0) { max = (int) (Math.log(max)/Math.log(nColas)) + 1; } } }
La complejidad de este algoritmo es lineal, O(NxM), donde N es el número de elementos del arreglo y M es el número de dígitos del mayor elemento del vector.
Muy buen blog!! saludos
ResponderBorrarGracias super
ResponderBorrargenial es de mucha ayuda
ResponderBorrarquemen todo a la verga putos!!!!
ResponderBorraryeezy
ResponderBorrarhermes handbags
jordan shoes
nike air vapormax
yeezys
timberland boots
red bottom shoes
kyrie 5 spongebob
louboutin shoes
golden goose slide
xiaofang20191218
ts61h97c3
ResponderBorrargolden goose outlet
golden goose outlet
golden goose outlet
golden goose outlet
golden goose outlet
golden goose outlet
golden goose outlet
golden goose outlet
golden goose outlet
golden goose outlet