hash mitad al cuadrado pdf

11
Informe de Análisis de Algoritmos Hash Mitad al CuadradoIntegrantes: Carlos Delgado Carriel Franco Guajardo Fernández Luis Riquelme Burgos Sebastián Morales Bustamante Docente: Pilar Pardo Concepción, abril 2014 Ingeniería en Informática

Upload: hector-riquelme-burgos

Post on 30-Jul-2015

525 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Hash mitad al cuadrado pdf

Informe de Análisis de Algoritmos “Hash Mitad al Cuadrado”

Integrantes: Carlos Delgado Carriel Franco Guajardo Fernández

Luis Riquelme Burgos Sebastián Morales Bustamante

Docente: Pilar Pardo

Concepción, abril 2014

Ingeniería en Informática

Page 2: Hash mitad al cuadrado pdf

INDICE

Introducción ....................................................................................................................... 3

1. Búsqueda Lineal ....................................................................................................... 4

1.2 Ejemplo ...................................................................................................................... 4

2. Búsqueda Binaria ..................................................................................................... 5

2.1 Ejemplo ...................................................................................................................... 5

3. Hash Truncamiento .................................................................................................. 6

3.1. Ejemplo ................................................................................................................... 6

4. Hash Plegamiento .................................................................................................... 7

4.1. Ejemplo ................................................................................................................... 7

5. Hash Aritmética Modular ......................................................................................... 8

5.1. Ejemplo ................................................................................................................... 8

6. Hash Mitad del Cuadrado ........................................................................................ 9

6.1. Factores a tomar en cuenta ................................................................................. 9

6.2. Ejemplos ............................................................................................................... 10

Conclusión ....................................................................................................................... 11

Page 3: Hash mitad al cuadrado pdf

Página 3

Introducción

El presente informe busca dar a conocer mas información sobre los algoritmos de

búsqueda, en donde se verán los siguientes puntos, búsqueda lineal, búsqueda

binaria, hash truncamiento, hash de plegamiento, hash de aritmética modular, y

hash mitad dl cuadrado, siendo esta última en la cual se profundizara en este

informe mostrando el método de funcionamiento que este posee atreves de sus

métodos, funcionamiento, descripción y ejemplos.

Page 4: Hash mitad al cuadrado pdf

Página 4

1. Búsqueda Lineal

Se utiliza en vectores no ordenados. El dato que se requiere buscar, se va comparando uno por uno (secuencialmente) con los contenidos en el vector hasta encontrarlo, o en caso contrario, recorrerlo por completo.

Mejor Caso Se encuentra cuando aparece una coincidencia en el primer elemento de la lista y en ese caso el tiempo de ejecución es O(1). Peor Caso Se produce cuando el elemento no está en la lista o se encuentra al final de la lista. Esto requiere buscar en todos los n términos, lo que implica una complejidad de O(n). Caso Promedio Requiere un poco de razonamiento probabilista. Para el caso de una lista aleatoria es probable que una coincidencia ocurra en cualquier posición.

1.2 Ejemplo

Si tenemos una estructura con los elementos 5, 8, 3, 2, 9, 5, 7, 0, 5, 1 y estamos

buscando el número 5, el resultado de la búsqueda nos mostraría las posiciones 0,

5 y 8 y el proceso terminaría al llegar al número 1 que es el último de la lista de

elementos.

Elementos 5 8 3 2 9 5 7 0 5 1

Posiciones 0 1 2 3 4 5 6 7 8 9

Posiciones donde

encontró el número 5

√ × × × × √ × × √ ×

Page 5: Hash mitad al cuadrado pdf

Página 5

2. Búsqueda Binaria

Se utiliza solamente cuando el vector está ordenado. Para ello, se selecciona un elemento cualquiera del vector, preferentemente central, y se compara con el elemento a buscar; si el valor tomado es mayor, se continúa realizando el procedimiento por la sección a la izquierda de éste ignorando la otra parte; si es menor se procede con la sección a la derecha hasta encontrar el valor o, en el peor de los casos, no encontrarlo. Mejor Caso Se presenta cuando una coincidencia se encuentra en el punto central de la lista. En este caso la complejidad es O (1) dado que sólo se realiza una prueba de comparación de igualdad. Peor Caso La complejidad del caso peor es O (log2 n) que se produce cuando el elemento no está en la lista o el elemento se encuentra en la última comparación. Se puede deducir intuitivamente esta complejidad Caso Promedio ½ log2n comparaciones.

2.1 Ejemplo

Para buscar el elemento 3 en el array {1,2,3,4,5,6,7,8,9} se realizarían los siguientes pasos: Se toma el elemento central y se divide el array en dos: {1,2,3,4}−5-{6,7,8,9} Como el elemento buscado (3) es menor que el central (5), debe estar en el primer subarray: {1,2,3,4} Se vuelve a dividir el array en dos: {1}−2-{3,4} Como el elemento buscado es mayor que el central, debe estar en el segundo subarray: {3,4} Se vuelve a dividir en dos: {}−3-{4} Como el elemento buscado coincide con el central, lo hemos encontrado.

Page 6: Hash mitad al cuadrado pdf

Página 6

3. Hash Truncamiento

La función truncamiento toma algunos de los dígitos de las claves y forma con

ellos una dirección. La elección de los dígitos es arbitraria, podrían tomarse los de

las posiciones pares o impares para con ellos generar la dirección donde se

almacenara la clave, uniendo los dígitos de izquierda a derecha o de derecha a

izquierda, su fórmula es la siguiente:

Dirección = elegir dígitos (unión dígitos)

3.1. Ejemplo

Si tenemos un total de 100 elementos y dos claves que sean 7259 y 9359, las

direcciones generadas son las siguientes:

Dirección = elegir dígitos (7, 5) = 75

Dirección = elegir dígitos (9, 5) = 95

Para este caso se tomaron los dígitos impares y se unieron de izquierda a

derecha.

Page 7: Hash mitad al cuadrado pdf

Página 7

4. Hash Plegamiento

La función plegamiento divide la clave en partes de igual número de dígitos (la

última puede tener menos dígitos), tomando como dirección los dígitos menos

significativos, después de realizar una operación entre las partes, ya sea una serie

de sumas o de multiplicaciones. La fórmula sería la siguiente:

Dirección = dígitos menos significativos (suma de partes)

Dirección = dígitos menos significativos (multiplicación de partes)

4.1. Ejemplo

Si tenemos un total de 100 elementos y dos claves que sean 7259 y 9359, las

direcciones generadas son las siguientes:

Dirección = dígitos menos significativos (72 + 59) =

dígitos menos significativos (131) = 31

Dirección = dígitos menos significativos (93 + 59) =

Dígitos menos significativos (152) = 52

Como el rango de claves es de 1 a 100 se toman dos dígitos para las particiones y

para la dirección.

Page 8: Hash mitad al cuadrado pdf

Página 8

5. Hash Aritmética Modular

La función módulo o por división toma el residuo de la división entre la clave y el

total de elementos de la estructura, generando la siguiente fórmula:

Dirección = (clave % total elementos)

Para lograr una mayor uniformidad en la distribución de los elementos, se debe

buscar que el valor que se usa en el total de elementos sea un número primo más

cercano al tamaño de la estructura.

5.1. Ejemplo

Si tenemos un total de 100 elementos y dos claves que sean 7259 y 9359, las

direcciones generadas son las siguientes:

Dirección = (7259%100) = 59

Dirección = (9359%100) = 59

Estos dos casos generan una colisión, ya que los dos números no se pueden

asignar dentro de la misma dirección en la estructura, para evitar la colisión, se

cambia el valor de 100 por el numero primo más cercano a él, en este caso seria

un 97, lo que generaría las siguientes direcciones:

Dirección = (7259%97) = 81

Dirección = (9359%97) = 47

Page 9: Hash mitad al cuadrado pdf

Página 9

6. Hash Mitad del Cuadrado

La función cuadrada como su nombre lo indica eleva al cuadrado la clave y del

resultado, se toman los dígitos centrales como la dirección. El número de dígitos a

tomar se determina del por el rango del índice de toda la estructura. Las fórmulas

hash son las siguientes:

Dirección = dígitos centrales (clave2)

Dirección = dígitos centrales (clave2) +1

6.1. Factores a tomar en cuenta

1. Para mayor seguridad empezar a extraer dígitos de la mitad de la llave elevada al cuadrado a la izquierda.

2. Extraer el mismo número de dígitos para cada llave y de las mismas posiciones. Aquí hay que tomar en cuenta el número de registros que se tiene en el archivo

Page 10: Hash mitad al cuadrado pdf

Página 10

6.2. Ejemplos

Utilizando la formula Dirección = dígitos centrales (clave2) +1

Sea N=100 el tamaño del arreglo y sean sus direcciones entre 1 y 100. Sean

K1=7259 y K2=9359 dos claves que deban almacenarse en el arreglo. Si se aplica

la fórmula queda:

H(K1)= (72592) + 1= (72592^2)=(52693081)+1=93 + 1= 94

Utilizando la formula Dirección = dígitos centrales (clave2)

Se escogen el 4º y el 5º dígitos por la derecha para obtener la dirección Hash. K: 3205 7148 2345 K2: 10272025 51093904 5499025

Page 11: Hash mitad al cuadrado pdf

Página 11

Conclusión Se concluye hay distintos métodos de búsqueda, estos se aplican según la problemática, esto dependerá de su tiempo de ejecución (tiempo y espacio). En resumen no existe un algoritmo mejor que otro ya que dependerá todo del problema que se encuentre.