Auxiliar CC3001 – 27 de octubre

Ordenación  

Problema 1: Multiway Merge  

Problema: Dadas k subsecuencias ordenadas de datos, generar una secuencia ordenada.  

Ejemplo, dadas las secuencias  

i)   1    5    8   12   16   20

ii)  2    8   14   15   18   21

iii) 0    5    6    7   12   15  

Podemos generar la secuencia  

    0    1    2    5    5    6    7    8    8    12    12    14    15    15    16    18    20    21  

La solución trivial para hacer esto es pegar las tres secuencias en una, y luego ordenamos con algún algoritmo conocido, pero esto no aprovecha el hecho de que las subsecuencias están ordenadas.  



Problema 2: Multiway Quick Select  

Problema: Dado un arreglo con valores desordenados, y dado un arreglo con posiciones (por ejemplo 10, 20, 30), encontrar los elmentos que están ubicados en dichas posiciones. Por simplicidad, consideremos que los valores son todos distintos.  

Esto para que sirve, por ejemplo: tenemos un arreglo con 100 elementos, y queremos conocer los elementos que dividen el conjunto en 4 subconjuntos de igual tamaño, es decir, queremos conocer los cuartiles. Para ello, nuestro

arreglo de posiciones contiene las posiciones 25, 50 y 75.  

La solución trivial para hacer esto es utilizar Quick Select para seleccionar los elmentos 25, 50 y 75. Con esto hacemos tres veces Quick Select y terminamos. Cuanto cuesta esto? 3 veces el costo de Quick Select. Que tiene de malo esto?, No estoy reutilizando los cálculos.  
