Está en la página 1de 21

Prof.

Robert Espinoza Domnguez

Ordenamiento y bsqueda externa

Ordenamiento Externo

Introduccin

Es las organizaciones es muy comn procesar grandes volmenes de informacin que no es posible almacenar los datos en la memoria principal, debido a la caracterstica voltil de sta y su escaso tamao Por esta razn la informacin se almacena en los dispositivos de memoria secundaria como son los discos duros, cintas, etc. La informacin mayormente se organiza en bases de datos que contienen tablas o archivos. Un archivo secuencial es aqul cuyos registros ocupan posiciones consecutivas. Todo registro tiene por lo general un campo que lo identifica de manera nica llamado campo clave.

Introduccin

El proceso de ordenar los datos almacenados en varios archivos se conoce como fusin o mezcla. Fusin se entiende como la combinacin o intercalacin de dos o ms secuencias ordenadas de registros en una nica secuencia ordenada.

Intercalacin de archivos

Es la unin o fusin de dos o ms archivos, ordenados de acuerdo con un determinado campo clave, en un slo archivo. Supongamos que se tienen dos archivos ordenados ascendentemente por una clave. Se van comparando las claves de cada archivo y aquel con menor clave se copia su registro a un tercer archivo y as hasta finalizar cualquiera de los dos archivos. Una vez que se detecte el fin de uno de los archivos, slo se tendr que copiar el resto de los registros del otro archivo.

Intercalacin de archivos

Por Ejemplo se tiene 2 archivos F1 y F2 ordenados ascendentemente. F1: 05 08 20 24 36 F2: 11 17 23 29 55 60 84 Debe producirse un archivo F3 ordenado con los elementos de F1 y F2. Realizamos las siguientes comparaciones

05 < 11 S se cumple Se copia el reg. correspondiente de F1 en F3, se lee otra clave de F1 (08) 08 < 11 S se cumple Se copia el reg. correspondiente de F1 en F3, se lee otra clave de F1 (20)

Intercalacin de archivos

20 < 11 No se cumple Se copia el reg. correspondiente de F2 en F3, se lee otra clave de F2 (17) El estado de los archivos F1, F2 y F3 hasta el momento es:

F1: 05 08 20 24 36 F2: 11 17 23 29 55 60 84 F3: 05 08 11

Finalmente F3 queda como sigue:

F3: 05 08 11 17 20 23 24 29 36 55 60 84

Ordenacin de archivos

La ordenacin de archivos se realiza cuando la cantidad de datos es demasiado grande y no caben en la memoria principal. Se entiende como la clasificacin de los registros de un archivo ascendentemente o descendentemente, de acuerdo a un campo clave. La principal desventaja de esta ordenacin es el tiempo de ejecucin, debido a las sucesivas operaciones de entrada y salida. Los dos mtodos ms importantes son:

Mezcla directa Mezcla equilibrada.

Ordenacin por Mezcla Directa

Consiste en la realizacin sucesiva de una particin y una fusin o mezcla que produce secuencias ordenadas de longitud cada vez mayor. La idea de este algoritmo consiste:

En la primera pasada la particin es de longitud 1 y la fusin produce secuencias ordenadas de longitud 2. En la segunda pasada la particin es de longitud 2 y la fusin produce secuencias ordenadas de longitud 4 Este proceso se repite hasta que la longitud de la secuencia para la particin sea: Parte entera ((n+1)/2) Donde n es el nmero de registros

Ordenacin por Mezcla Directa

Por ejemplo ordenar ascendentemente: F: 09, 75, 14, 68, 29, 17, 31, 25, 04, 05, 13, 18, 72, 46, 61 Se usan dos archivos auxiliares F1 y F2. Primera Pasada:

Particin en secuencias de longitud 1 F1: 09 14 29 31 04 13 72 61 F2: 75 68 17 25 05 18 46 Fusin en secuencias de longitud 2. F: 09 75 14 68 17 29 25 31 04 05 13 18 46 72 61

Clasificacin por Mezcla Directa

Segunda Pasada:

Particin en secuencias de longitud 2. F1: 09 75 17 29 04 05 46 72 F2: 14 68 25 31 13 18 61 Fusin en secuencias de longitud 4. F: 09 14 68 75 17 25 29 31 04 05 13 18 46 61 72

Tercera Pasada:

Particin en secuencias de longitud 4. F1: 09 14 68 75 04 05 13 18 F2: 17 25 29 31 46 61 72 Fusin en secuencias de longitud 8. F: 09 14 17 25 29 31 68 75 04 05 13 18 46 61 72

Clasificacin por Mezcla Directa

Cuarta Pasada:

Particin en secuencias de longitud 8. F1: 09 14 17 25 29 31 68 75 F2: 04 05 13 18 46 61 72 Fusin en secuencias de longitud 16. F: 04 05 09 13 14 17 18 25 29 31 46 61 68 72 75

Queda finalmente ordenado el archivo.

Clasificacin por Mezcla Equilibrada

Es conocido como mezcla natural y optimiza el mtodo de mezcla directa. La idea del algoritmo consiste en:

Realizar las particiones tomando secuencias ordenadas de mxima longitud. Realizar la fusin de las secuencias ordenadas, alternativamente sobre dos archivos. Aplicando estas acciones en forma repetida se lograr que el archivo original quede ordenado.

Se requiere de cuatro archivos, F el archivo original y F1, F2, F3

Dos de entrada: F2 y F3 y dos de salida F y F1

Termina cuando en la realizacin de una fusin-particin en el segundo archivo quede vaco.

Clasificacin por Mezcla Equilibrada

Por ejemplo se desea ordenar el archivo F. Se usan tres archivos auxiliares F1, F2 y F3.
F: 09 75 14 68 29 17 31 25 04 05 13 18 72 46 61

Primera Pasada:

Particin inicial F2: 09 75 29 25 46 61 F3: 14 68 17 31 04 05 13 18 72

Clasificacin por Mezcla Equilibrada

Segunda Pasada:

Fusin-Particin en secuencias ordenadas. F: 09 14 68 75 04 05 13 18 25 46 61 72 F1: 17 29 31 Fusin-Particin en secuencias ordenadas F2: 09 14 17 29 31 68 75 F3: 04 05 13 18 25 46 61 72 Fusin-Particin en secuencias ordenadas F : 04 05 09 13 14 17 18 25 29 31 46 61 68 72 75 F1:

Tercera Pasada:

Cuarta Pasada:

Bsqueda Externa

Bsqueda Externa

Se utilizan cuando los datos estn almacenados en memoria secundaria mediante archivos. Se usan archivos por que el volumen de datos es grande o se exige su permanencia. Operaciones de escritura y lectura tienen alto costo en tiempo. Para reducir el costo es importante optimizar la operacin de bsqueda. Las ms importantes son: Bsqueda Secuencial (desordenado y ordenado) Bsqueda Secuenciales por Bloques Bsqueda secuencial con ndices. Bsqueda binaria.

Bsqueda Secuencial

Consiste en recorrer el archivo comparando la clave buscada con la clave del registro actual. El recorrido finaliza cuando:

Se encuentra el elemento Cuando se alcanza el final del archivo (EOF) es decir cuando la bsqueda no tuvo xito.

Si el archivo est ordenado se puede optimizar la bsqueda finalizando el recorrido cuando el valor buscado es menor o igual que la clave del registro actual.

Si la clave es igual se encontr el elemento Si se lleg al final del archivo o la clave es menor entonces la bsqueda no tuvo xito.

Bsqueda secuencial por bloques


Consiste en tomar bloques de registros. El tamao del bloque es arbitrario y depende del nmero de registros. Mayormente se considera el tamao igual a:

El archivo debe estar ordenado La bsqueda se realiza comparando clave con el ltimo registro de cada bloque. Si la clave es menor entonces se busca secuencialmente en el bloque. Si la clave es mayor se contina con el siguiente bloque.

Bsqueda secuencial con ndices


Trabaja con bloques y con archivos de ndices El archivo de ndices almacena las claves que hacen referencia a cada bloque y la direccin de los bloques en el archivo. La bsqueda se realiza de la siguiente manera:

Se recorre el archivo de ndices comparando con la clave del elemento buscado. Una vez determinado el bloque donde puede estar el registro buscado, se contina la bsqueda recorriendo secuencialmente este bloque.

Una forma de acelerar el proceso de bsqueda es mantener en memoria principal el archivo de ndices.

Bsqueda secuencial binaria

Se procede de manera similar que en la bsqueda binaria interna. El archivo debe estar ordenado Se debe conocer el nmero de elementos. Tiene un alto costo en tiempo de acceso debido a que requiere accesos a diferentes posiciones del dispositivo de almacenamiento.

También podría gustarte