Sunteți pe pagina 1din 20

Ordenamiento y bsqueda externa

Prof. Robert Espinoza Domnguez


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
Tercera Pasada:
Fusin-Particin en secuencias ordenadas
F2: 09 14 17 29 31 68 75
F3: 04 05 13 18 25 46 61 72
Cuarta Pasada:
Fusin-Particin en secuencias ordenadas
F : 04 05 09 13 14 17 18 25 29 31 46 61 68 72 75
F1:
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 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.

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:
Bsqueda secuencial por bloques
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.

n
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 con ndices

S-ar putea să vă placă și