Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Desarrollo
Se entiende por colisiones cuando dos o más elementos diferentes se asignan a un mismo índice,
es decir cuando el algoritmo empieza a buscar un cierto parámetro o valor entonces el índice está
Figura N°1
INDICE.
1 2 3 4
ARREGLO
1 2 3 4
Entonces como un breve ejemplo en el índice existe una colisión cuando se le asigna a dos o más
Figura N°2
INDICE.
1 2 3 4
ARREGLO
1 2 3 4
Que sucede con esto en simples palabras retarda la búsqueda, ya que no se puede determinar la
posición exacta del dato. ¿Cómo podemos dar una solución a las colisiones?; podemos dar una
Figura N°3
INDICE.
1 2 3 4 5 6
ARREGLO
1 2 3 4
Como el índice 4 está ocupado se le asignara la primera posición libre en este caso sería en modo
ascendente y podríamos decir que es la 5ta del índice la que se encuentra en color verde. Ver
Figura N°4
Figura N°4
5 6
Aunque este método es poco eficaz, ya que pudiese que al nuevo elemento se le podría asignar
un índice que estuviera ocupado por un elemento anterior y así conformando una nueva colisión
buscados.
Ahora veremos el segundo en el cual podemos reservar una cantidad determinada de espacios
libres al final del arreglo para colocar las colisiones allí pero solamente cuando se produzcan
durante el proceso de búsqueda, pero tenemos que pensar lo siguiente ¿Cuántos espacios
tenemos que reservar para dejar las nuevas colisiones que se generen?, esto queda en evidencia
si aún conocemos N o la cantidad de elementos que se generaran en el arreglo. Pero esto puede
Y el ultimo que revisaremos es probablemente lo más efectivo es crear un arreglo de los punteros,
en vez de hacer un arreglo con números, cada uno de estos punteros señalará de esta manera un
inicio de una lista cualquiera enlazada. Con esta modalidad cada elemento se enlaza con un
determinado índice y este se coloca el último lugar del el índice mencionado. Al aplicar este
tratamiento puede reducir el tiempo de búsqueda considerablemente, obviamente no se aplica
considerar las restricciones del tamaño del arreglo (N), ya que se pueden añadir nodos en una
Ahora el tratamiento que le podemos dar a las tablas hash en las cuales el comportamiento puede
ser en forma de restas sucesivas, aritmética modular, mitad del cuadrado, truncamiento y
plegamiento.
Restas sucesivas:
En esta función se emplean claves numéricas en las que pueden existir espacios libres y por
Aritmética Modular:
Este es un caso particular en donde el índice de un número dentro del arreglo. En este caso
particular el índice de un número es el resto de la división entre un factor X que se prefija con un
Esta función consiste en elevar al cuadrado cualquier clave y tomar como índice las cifras
centrales del producto, pero esta manera es la mayormente presenta problemas de colisión.
Truncamiento: Este consiste en desestimar una parte del número que se usa como índice a todos
Plegamiento:
Este método consiste en recorrer en una forma completa un arreglo, el cual procede a examinar
cada uno de los elementos hasta encontrar el que está buscando, o en otro caso hasta que sea
Se representa de la siguiente manera para el caso que sea optimizado para buscar algún elemento
En el caso que necesitemos de conocer solamente el primer registro se utiliza de esta manera
If (array[i] == elementobuscado)
Break;
b. Búsqueda Binaria:
El requisito fundamental de este algoritmo tiene como petición que todo el arreglo haya sido
ordenando previamente.
Este tipo de algoritmo divide el arreglo, en varios sus arreglos menores para así poder comparar
el mismo elemento buscado. Si existiera una coincidencia la búsqueda finaliza ahí, pero en el
comparación. Seria
Cuando busca el número por dar un ejemplo el 6 verifica que el numero encontrado sea mayor