método de búsqueda Truncamiento

9
SEDE CONCEPCIÓN TALCAHUANO Métodos de Búsqueda y Ordenamiento Asignatura: Análisis de Algoritmo Integrantes: Cristopher Blum Gonzalo Medina Edison Sáez Echeverría Joel Salgado Medina Docente: Pilar Pardo H Fecha: 15/04/2014

Transcript of método de búsqueda Truncamiento

Page 1: método de búsqueda Truncamiento

SEDE CONCEPCIÓN TALCAHUANO

Métodos de Búsqueda

y Ordenamiento

Asignatura:

Análisis de Algoritmo

Integrantes: Cristopher Blum Gonzalo Medina

Edison Sáez Echeverría Joel Salgado Medina

Docente: Pilar Pardo H

Fecha: 15/04/2014

Page 2: método de búsqueda Truncamiento

2

INDICE

INTRODUCCIÓN ....................................................................................................................................... 3

ARITMÉTICA MODULAR......................................................................................................................... 4

FUNCIÓN TRUNCAMIENTO ................................................................................................................... 6

FUNCIÓN PLEGAMIENTO ..................................................................................................................... 6

TIPOS DE BUSQUEDA ............................................................................................................................ 7

BÚSQUEDA LINEAL ........................................................................................................................................ 7 BÚSQUEDA BINARIA ...................................................................................................................................... 8

CONCLUSIÓN ........................................................................................................................................... 9

Page 3: método de búsqueda Truncamiento

3

Introducción

Un algoritmo de búsqueda es aquel que está diseñado para localizar un elemento con ciertas

propiedades dentro de una estructura de datos, por ejemplo, ubicar el registro correspondiente a

cierta persona en una base de datos, o el mejor movimiento en una partida de ajedrez.

A continuación se explican algunos métodos de búsqueda y ordenamiento de claves en arreglos.

Page 4: método de búsqueda Truncamiento

4

Aritmética Modular

Cuando dividimos dos enteros tenemos una ecuación que se ve de la siguiente forma:

A / B = Q con residuo R

A es el dividendo

B es el divisor

Q es el cociente

R es el residuo

Algunas veces, solo estamos interesados en el valor del residuo de la división de A entre B.

Para estos casos existe un operador llamado operador modular (abreviado como mod).

Usando las mismas A, B, Q y R anteriores, tendríamos A mod B = R

Diremos esto como "A módulo B es congruente con R". Donde a B se le llama módulo.

Por ejemplo, sabemos que: 13/5 = 2 con un residuo de 3

o

13 mod 5 = 3

Visualiza el módulo con relojes

Observa lo que pasa cuando incrementamos números de uno en uno y luego los dividimos entre 3.

0/3=0 residuo 0

1/3=0 residuo 1

2/3=0 residuo 2

3/3=1 residuo 0

4/3=1 residuo 1

5/3=1 residuo 2

6/3=2 residuo 0

El residuo comienza en 0 e incrementa en 1 cada vez, hasta que el número alcanza uno menos el

número entre el cual estamos dividiendo.

Después de eso, la secuencia se repite.

Al notar esto, podemos visualizar el operador módulo usando círculos.

Escribimos 0 en la parte superior de un círculo y continuamos escribiendo números enteros en la

dirección de las manecillas del reloj, 1, 2,... hasta uno menos que el módulo.

Page 5: método de búsqueda Truncamiento

5

Por ejemplo, un reloj con el 12 sustituido por un 0 sería el círculo para un módulo de 12.

Para encontrar el resultado de A mod B =? podemos seguir estos pasos:

1. Construir este reloj de tamaño B

2. Comenzar en 0 y movernos alrededor del reloj en A pasos

3. Dondequiera que aterricemos es nuestra solución.

(Si el número es positivo, damos el paso en sentido de las manecillas del reloj, si es

negativo damos el paso en contra de las manecillas del reloj)

Mitad del cuadrado: consiste en elevar al cuadrado la clave y coger las cifras centrales. Este

método también presenta problemas de colisión:

123*123=15129 --> 51

136*136=18496 --> 84

730*730=532900 --> 29

301*301=90601 --> 06

625*625=390625 --> 06

Page 6: método de búsqueda Truncamiento

6

Función Truncamiento

Consiste en tomar algunos dígitos de la clave y formar con ellos una dirección. Este método es de

los más sencillos, pero es también de los que ofrecen menos uniformidad en la distribución de las

claves.

La elección de los dígitos es arbitraria. Podrían tomarse los dígitos de las posiciones impares o de

las pares. Luego podría unírseles de izquierda a derecha o de derecha a izquierda. La suma de

una unidad a los dígitos seleccionados es para obtener un valor entre 1 y 100.

Por ejemplo, si un número de 7 cifras se debe ordenar en un arreglo de elementos,

Se pueden tomar el segundo, el cuarto y el sexto para formar un nuevo número:

5700931 »> 703

3498610 »> 481

0056241 »> 064

9134720 »> 142

5174829 »> 142

• Ignora parte de la clave y se utiliza la parte restante directamente como índice

(considerando campos no numéricos y sus códigos numéricos).

• Si las claves, por ejemplo; son enteros de ocho dígitos y la tabla de transformación tiene

mil posiciones, entonces el primero, segundo y quinto dígitos desde la derecha pueden

formar la función de conversión. Ejemplo: 72588495 se convierte en 895. El truncamiento

es un método muy rápido, pero falla para distribuir las claves de modo uniforme.

Función Plegamiento

Consiste en dividir la clave (dígito) en partes iguales. Las operaciones entre los dígitos (partes)

puede ser por medio de suma, resta o multiplicación.

Clave (K) Plegamiento (suma) Dirección

197452 19 | 74 | 52 145

280304 28 | 03 | 04 35

484001 48 | 40 | 01 89

Page 7: método de búsqueda Truncamiento

7

Tipos de Busqueda

Búsqueda lineal

Consiste en recorrer y examinar cada uno de los elementos del arreglo hasta encontrar el o los

elementos buscados, o hasta que se han mirado todos los elementos.

Este es el método de búsqueda más lento, pero si nuestra información se encuentra

completamente desordenada es el único que nos podrá ayudar a encontrar el dato que buscamos.

MEJOR CASO: El algoritmo de búsqueda lineal termina tan pronto como encuentra el

elemento buscado en el array. Si tenemos suerte, puede ser que la primera posición

examinada contenga el elemento que buscamos, en cuyo caso el algoritmo informará que

tuvo éxito después de una sola comparación. Por tanto, la complejidad en este caso será O

(1).

PEOR CASO: Sucede cuando encontramos X en la última posición del array. Como se

requieren n ejecuciones del bucle mientras, la cantidad de tiempo es proporcional a la

longitud del array n, más un cierto tiempo para realizar las instrucciones del bucle mientras

y para la llamada al método. Por lo tanto, la cantidad de tiempo es de la forma an + b

(instrucciones del mientras * tamaño del arreglo + llamada al método) para ciertas

constantes a y b, que representan el coste del bucle mientras y el costo de llamar el

método respectivamente.

CASO MEDIO: Supongamos que cada elemento almacenado en el array es igualmente

probable de ser buscado. La media puede calcularse tomando el tiempo total de encontrar

todos los elementos y dividiéndolo por n:

Ejemplo:

Page 8: método de búsqueda Truncamiento

8

Búsqueda Binaria

Consiste en reducir paulatinamente el ámbito de búsqueda a la mitad de los elementos, basándose

en comparar el elemento a buscar con el elemento que se encuentra en la mitad del intervalo y en

base a esta comparación de los diferentes casos que pueden darse:

Si el elemento buscado es menor que el elemento medio, entonces sabemos que el

elemento está en la mitad inferior de la tabla.

Si es mayor es porque el elemento está en la mitad superior.

Si es igual se finaliza con éxito la búsqueda ya que se ha encontrado el elemento.

Este método puede utilizarse en vectores, matrices y árboles.

Ejemplo (código):

Page 9: método de búsqueda Truncamiento

9

Conclusión

Como métodos de búsqueda y ordenamiento hay varios, lo importante a la hora de

utilizarlos es saber cuál es el más conveniente, por ejemplo, en arreglo de datos ordenados es más

efectivo utilizar una búsqueda binaria para encontrar un dato que hacerlo de forma lineal.

Es importante saber con qué tipo de arreglo se está trabajando para realizar la búsqueda

más eficiente y rápida.