You are on page 1of 3

UNIVERSIDAD NACIONAL AUTONOMA

DE MEXICO

FACULTAD DE ESTUDIOS SUPERIORES


ARAGN

DISEO Y ANALISIS DE ALGORITMOS

HASHING
(Funcin de Dispersin)

BUCIO ORTEGA LORENA ITZEL


DAZ PREZ MARCO ANTNONIO

Introduccin: Qu se hizo como problema? Realizamos el cdigo de hash


Especificacin del problema: Las tablas de dispersin, son estructuras de datos
que se usan en aplicaciones que manejan una secuencia de elementos, de tal
forma que cada elemento tiene asociado un valor clave.
Aplicaciones: El uso de hash es bastante amplio, digamos al realizar una
bsqueda por ejemplo, si en el almacenamiento se aplic hash y ahora queremos
encontrar cosas relacionadas esto nos reducira considerablemente el tiempo que
tardara en encontrar lo que busca, este programa s realizo con nmeros pero bien
podra realizarse para documentos, palabras etc.
Puntos a considerar: Al realizar este proyecto, tomamos en cuenta lo que
realizar el proyecto, es decir, en su forma ms bsica de explicar, diremos que
tenemos un arreglo de nmeros los cuales sern ordenados en determinada
arreglo de memoria y cuando se busque acceder a ellos se podra lograr de una
manera ms eficiente.
Ocuparemos las funciones de dispersin que lograran esto.
El funcionamiento de esto es por medio de la aritmtica modular la cual realizara
la asignacin en el arreglo creado.
Colisin: Es necesario tomar en cuenta que existe la posibilidad de que dos
nmeros puedan almacenarse en el mismo lugar dentro de nuestro arreglo por lo
cual si esto sucede deberamos recorrernos y buscar el ms prximo.
Esto contempla otro problema en el momento de bsqueda no podramos
encontrar alguno de los datos almacenados pues podra localizarse en otra parte
del arreglo as que lo que se hace es volver a aplicar el modular para encontrar
dicha direccin y si no se encuentra ir recorriendo hasta dar con el
Si nuestro arreglo se encuentra lleno el programa est obligado a buscar un
espacio en todo el arreglo en caso de que no lo halle se informara al usuario y
este ser desechado.
En el peor de los casos el dato requerido se encuentra hasta el final de nuestro
arreglo (uno antes de donde debera estar) por lo cual tendra que recorrer todo el
arreglo hasta encontrarlo.
En el mejor de los casos se aplica directamente el modular y la direccin es
inmediata
Sin embargo an en el peor de los casos la eficiencia de este algoritmo el
Logartmica
Es decir lineal, por lo cual es bastante eficiente.
Ejemplo: supongamos un arreglo de 10 nmeros los cuales deben ser
almacenados por hash nuestros nmeros seran los siguientes:
{12, 23, 6, 43, 84, 60, 5, 10, 2, 5}
Nuestro modular seria 10, y los nmeros resultaran almacenados de la siguiente
forma:
12/10: asigna en la posicin 2
23/10: asigna en la posicin 3
06/10: asigna en la posicin 6

43/10: asigna en la posicin 3


Como la posicin 3 ya est ocupada busca la ms prxima seria la 4
84/10: asigna en la posicin 4
Como ya est ocupada busca el ms prximo 5
60/10: asigna en la posicin 0
05/10: asigna en la posicin 5
Como ya est ocupada busca el ms prximo 7
Ahora: digamos que necesitamos el nmero 5 que fue el ltimo asignado
Para encontrarlo aplicaramos el modular que nos dice esta en el espacio 5
Lo comparamos y al no ser correcto comenzaramos a buscar y comparar cada
espacio hasta hallarlo y regresar la posicin.
Conclusiones: Si las colisiones ocurren a menudo eso nos genera un gran
problema en el momento de bsqueda, por lo cual sera recomendable minimizar
al mximo las colisiones, este algoritmo es bastante simple pero tambin eficiente,
y eso lo hace muy til y verstil a la hora de aplicarlo a algn problema