Informe de Análisis de Algoritmos
“Hash Mitad al Cuadrado”
Integrantes: Carlos Delgado Carriel
Franco Guajardo Fernández
L...
INDICE
Introducción..........................................................................................................
Página 3
Introducción
El presente informe busca dar a conocer mas información sobre los algoritmos de
búsqueda, en donde s...
Página 4
1. Búsqueda Lineal
Se utiliza en vectores no ordenados. El dato que se requiere buscar, se va
comparando uno por ...
Página 5
2. Búsqueda Binaria
Se utiliza solamente cuando el vector está ordenado. Para ello, se selecciona un
elemento cua...
Página 6
3. Hash Truncamiento
La función truncamiento toma algunos de los dígitos de las claves y forma con
ellos una dire...
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 ...
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
to...
Página 9
6. Hash Mitad del Cuadrado
La función cuadrada como su nombre lo indica eleva al cuadrado la clave y del
resultad...
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...
Página 11
Conclusión
Se concluye hay distintos métodos de búsqueda, estos se aplican según la
problemática, esto dependerá...
Próxima SlideShare
Cargando en…5
×

Hash mitad al cuadrado pdf

131 visualizaciones

Publicado el

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
131
En SlideShare
0
De insertados
0
Número de insertados
12
Acciones
Compartido
0
Descargas
1
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Hash mitad al cuadrado pdf

  1. 1. 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
  2. 2. 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
  3. 3. 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.
  4. 4. 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 √ × × × × √ × × √ ×
  5. 5. 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.
  6. 6. 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.
  7. 7. 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.
  8. 8. 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
  9. 9. 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
  10. 10. 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
  11. 11. 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.

×