Ordenar algoritmo
Paso 1. Clasifique 50 (*) elementos a la vez (es decir, clasifique los elementos 1-50, luego 51-100, y así sucesivamente). Me referiré a cada uno de estos segmentos ordenados como bloques.
Paso 2. Haz una fusión k-way de los primeros 50 bloques en un bloque grande. Si hay más bloques más allá de los primeros 50, repita esto para los bloques 51-100, 101-150, y así sucesivamente; de lo contrario, hemos terminado.
Paso 3. Repita el paso 2.
algoritmo de fusión k-way
- Si U = {todos los enteros positivos menores o iguales a 30} y N = {todos los números impares menores o iguales a 19}, ¿qué es N 'y n (N')?
- Cómo hacer que el software de mi sitio web lea un correo electrónico, capture la ID en el asunto y actúe en función de esa ID
- ¿La evolución biológica es algorítmica?
- ¿Qué estructura de datos se usa para llenar una pila?
- ¿Qué es un problema de horario en la programación? ¿Cómo se convierte en un problema NP difícil?
Paso 1. Elija el elemento mínimo de cada bloque ordenado y agregue un par que contenga el elemento y un índice que identifique de qué bloque proviene a un montón mínimo.
Paso 2. Explota el montón. El elemento debe estar en su orden final ordenado, para que podamos escribirlo en el disco. Use el índice para elegir un bloque y empuje el siguiente elemento en ese bloque al montón. De esta manera, mantenemos la invariante de que el siguiente elemento emergente es el mínimo global que aún no hemos verificado.
Paso 3. Repita el paso 2 hasta que el montón esté vacío.
* Probablemente sería más seguro hacer 40 elementos / bloques a la vez, por lo que permitimos un poco de memoria extra para cosas menores como variables que ocupan un poco de espacio extra.