Ordenamiento shell Búsqueda y clasificación

Anuncio
Gómez Hernández Leonel Alejandro
Estructura de archivos sección D05
Ordenamiento shell
El algoritmo Shell sort mejora el ordenamiento por inserción comparando elementos separados por un espacio de varias
posiciones. Esto permite que un elemento haga "pasos más grandes" hacia su posición esperada. Los pasos múltiples
sobre los datos se hacen con tamaños de espacio cada vez más pequeños. El último paso del Shell sort es un simple
ordenamiento por inserción, pero para entonces, ya está garantizado que los datos del vector están casi ordenados.
Método:
//java
public static void shellSort( int a[ ])
{
for( int gap = a.length / 2; gap > 0; gap = gap == 2 ? 1 : (int) ( gap / 2.2 ) ){
for( int i = gap; i < a.length; i++ ){
int tmp = a[ i ];
int j;
for(j = i; j >= gap && tmp < a[ j - gap ] ; j -= gap ){
a[ j ] = a[ j - gap ];
}
Búsqueda y clasificación externa
Cuando hablamos de archivos sabemos la diferencia en tiempo que resulta de hacer una búsqueda y una clasificación en
una memoria RAM si la comparamos contra un disco de unidad fijo. Aun en una buena clasificación, físicamente, implica
cada una de las comparaciones un desplazamiento y la clasificación se vuelve lenta.
En el análisis de la clasificación y búsqueda se deben desarrollar enfoques que minimicen el número de accesos a disco
y la cantidad de tiempo invertido.
Búsqueda Binaria
En una búsqueda binaria lo primero que tenemos que saber es que los registros deben estar ordenados en términos de
la llave que se está usando en la búsqueda.
Supongamos que queremos buscar algún nombre en un archivo de x cantidad registros, primero compararíamos con la
llave que está a la mitad del archivo. El resultado de la comparación, indica en cuál mitad del archivo se contiene dicho
registro, por decirlo así si nuestro registro fuera otro diferente, sabríamos que el que buscamos se encontraría en la
primera mitad de los archivos. Este proceso se repite hasta que se encuentre el registro, o en dado caso hasta saber que
no se encuentra allí.
Este tipo búsqueda reduce las comparaciones considerablemente.
Gómez Hernández Leonel Alejandro
Ordenamiento en memoria
Estructura de archivos sección D05
Cuando nos referimos a un ordenamiento en memoria estamos hablando de almacenar un archivo en la memoria RAM y
clasificarlo desde ahí, de esta manera ya no tendríamos que trasportar grandes distancias desde una posición inicial en
un disco duro, ahorrándonos saltos, desplazamientos y relectura de datos, ya que esto es una operación muy lenta.
Este tipo de ordenamiento solo tiene ventaja cuando el archivo es pequeño.
Ordenamiento por llaves
Método de clasificación de un archivo que no requiere almacenarlo por completo en la memoria, es decir, Sólo las llaves
se mantienen en memoria, junto con apuntadores que las asocian con los registros del archivo donde se extrajeron. Las
llaves se clasifican, y la lista de llaves clasificada se usa para construir una nueva versión del archivo que tienen los
registros ya ordenados.
La ventaja principal de esta clasificación es que requiere menos memoria que la clasificación en memoria RAM. La
desventaja es que el proceso de construcción de un archivo nuevo requiere bastantes desplazamientos.
Registros fijos
Se dice que un registro está fijo cuando existen otros registros o estructuras de archivos referidas a él mediante su
posición física. Está fijo en el sentido de que no se tiene la libertad de alterar la posición física del registro, ya que al
hacerlo se destruiría la validez de las referencias físicas al registro. Estas referencias se convierten en apuntadores
suspendidos que no sirven de mucho.
Indización y operaciones
La indización permite varios caminos de acceso a un archivo. También proporciona acceso por llave a archivos de
registros de longitud variable. En una indización tiene un campo llave distinto pero todos tienen el mismo número de
catálogo como campo de referencia.
Las operaciones para el manejo y mantenimiento de un archivo son las siguientes: Creación de los archivos, carga del
índice en la memoria, reescritura del archivo en índices de la memoria, adición de registros, eliminación de registros y
actualización de registros.
Índices Selectivos
Un índice selectivo contiene llaves sólo para una porción de los registros del archivo de datos, dicho índice permite al
usuario ver un subconjunto específico de los registros del archivo.
Enlace (BINDING)
El enlace se realiza cuando una llave se asocia con un determinado registro físico del archivo de datos; en general,
puede tener lugar ya sea durante la preparación del archivo de datos e índices o durante la ejecución del programa. En
el primer caso, que es llamado enlace fuertemente acoplado, los índices contienen referencias explícitas a los registros
Gómez Hernández Leonel Alejandro
Estructura de archivos sección D05
físicos de datos asociados. En el último caso, la conexión entre una llave y un registro físico en particular se posterga
hasta que realmente se extrae el registro, durante la ejecución del programa.
Descargar