MEtodos de Busqueda
MEtodos de Busqueda
MEtodos de Busqueda
Métodos de búsqueda
3
Introducción a la unidad
Una de las funciones que con mayor frecuencia se utiliza en los sistemas de
información, es el de las consultas a los datos, se hace necesario utilizar
algoritmos, que permitan realizar búsquedas de forma rápida y eficiente.
1
Jorge Iván Euán Ávila y Luis Gonzaga Cordero Borboa, op. cit., p. 181.
Informática III
Licenciatura en Informática a Distancia
1
FCA-UNAM
Unidad III. Métodos de búsqueda
LO QUE SÉ
Informática III
2 Licenciatura en Informática a Distancia
FCA-UNAM
Unidad III. Métodos de búsqueda
1. Búsqueda secuencial
2. Búsqueda binaria
3. Búsqueda mediante transformación de llaves (Hashing)
4. Árboles binarios de búsqueda
Resumen de la unidad
Informática III
Licenciatura en Informática a Distancia 3
FCA-UNAM
Unidad III. Métodos de búsqueda
Donde los primeros método de comparación de llaves son los más sencillos de
implementar, ya que como su nombre se indica, se dedican a comparar el dato a
buscar con cada uno de los registros almacenados en el archivo o en la base de
datos, siendo una de sus principales desventajas el tiempo de espera, ya que
cuando los registros son pequeños funcionan de forma eficiente, pero van
deteriorando su desempeño conforme se incrementa el número de registros a
comparar.
Informática III
4 Licenciatura en Informática a Distancia
FCA-UNAM
Unidad III. Métodos de búsqueda
Informática III
Licenciatura en Informática a Distancia 5
FCA-UNAM
Unidad III. Métodos de búsqueda
Desarrollo
Este tipo de búsqueda consiste en examinar, a partir del primer elemento y de uno
en uno, hasta encontrar el dato buscado o bien llegar al final de la lista que puede
estar almacenada en archivo o arreglo.
Informática III
6 Licenciatura en Informática a Distancia
FCA-UNAM
Unidad III. Métodos de búsqueda
bandera = 1
else
i=i+1
fin
fin
si bandera = 0
desplegar “no se encontró el dato en la lista”
fin
n0, n 1 , n 2 ,....n n _1
n/2
Ejemplos:
Informática III
Licenciatura en Informática a Distancia 7
FCA-UNAM
Unidad III. Métodos de búsqueda
16
Informática III
8 Licenciatura en Informática a Distancia
FCA-UNAM
Unidad III. Métodos de búsqueda
Solución A)
Informática III
Licenciatura en Informática a Distancia 9
FCA-UNAM
Unidad III. Métodos de búsqueda
Solución C)
Informática III
10 Licenciatura en Informática a Distancia
FCA-UNAM
Unidad III. Métodos de búsqueda
ACTIVIDAD 1
Utilice un editor de texto, para realizar su actividad, una vez que concluya envíe
su información; presione el botón Examinar para localizar el archivo en su
computadora y por último presione Subir este archivo.
Informática III
Licenciatura en Informática a Distancia 11
FCA-UNAM
Unidad III. Métodos de búsqueda
ACTIVIDAD 2
Bibliografía básica
Sitios electrónicos
Sitio Descripción
Informática III
12 Licenciatura en Informática a Distancia
FCA-UNAM
Unidad III. Métodos de búsqueda
Desarrollo
La búsqueda Binaria o por Bisección no representa mucha dificultad para la
programación de su algoritmo y además, es muy rápida su ejecución.
Este algoritmo requiere que los elementos de la lista, sobre la que va a actuar, estén
clasificados, ya sea en forma ascendente o descendente, cada elemento de la lista
puede tener varios campos. La lista se considera que empieza a almacenar sus
elementos en la posición cero.
Informática III
Licenciatura en Informática a Distancia 13
FCA-UNAM
Unidad III. Métodos de búsqueda
En ambos casos se aplicaran nuevamente los puntos anteriores del método, desde
el primer paso, hasta que el elemento sea encontrado o bien que la lista que vaya
quedando como resultado, quede vacía.
Informática III
14 Licenciatura en Informática a Distancia
FCA-UNAM
Unidad III. Métodos de búsqueda
Este método en cada iteración el intervalo de búsqueda se divide por mitad, por lo
que el número de comparaciones tiende a:
Log2 n
ACTIVIDAD 1
Utilice un editor de texto, para realizar su actividad, una vez que concluya envíe
su información; presione el botón Examinar para localizar el archivo en su
computadora y por último presione Subir este archivo.
ACTIVIDAD 2
Informática III
Licenciatura en Informática a Distancia 15
FCA-UNAM
Unidad III. Métodos de búsqueda
Autoevaluación
4 Log2 n
Bibliografía básica
Sitios electrónicos
Sitio Descripción
Informática III
16 Licenciatura en Informática a Distancia
FCA-UNAM
Unidad III. Métodos de búsqueda
Desarrollo
La utilización de los métodos por comparación de llaves son muy dependientes del
número de elementos, estos es, a mayor número de elementos son mayores
las comparaciones.
Informática III
Licenciatura en Informática a Distancia 17
FCA-UNAM
Unidad III. Métodos de búsqueda
- Tener que definir un campo llave, que recordando del primer capítulo, es aquel
que aparece en todos los registros o nodos de la lista, pero cuyo contenido no
se repite.
- La eficiencia de este tipo de búsquedas, va a depender de que tan robusta sea
la función HASH, que va a transformar la llave para indicar la posición en la cual se
encuentra el elemento buscado, lo ideal es que sea de uno a uno, esto es que para
cada valor de llave, esta función la transforme e indique en qué posición va
encontrar ese registro.
Función Hash
Es importante hacer notar que la misma función de Hash, que se utiliza, para
almacenar, es la misma que se ocupa para recuperar la llave (considerando que
sólo se está almacenando por la llave, pero que puede ser un registro o estructura
que puede contener varios campos).
Informática III
18 Licenciatura en Informática a Distancia
FCA-UNAM
Unidad III. Métodos de búsqueda
La función de Hash (primer dígito + tercer dígito) aplicado a las siguientes llaves:
K1=123 y K2=292
H ( K 1 ) = 4
H ( K 2 ) = 4
Lo que implicaría que estas dos llaves, con valores diferentes, deberían de estar
en la misma dirección, a este suceso se le conoce como colisión.
Existen diferentes formas de resolver las colisiones entre las más comunes se tienen
las de direccionamiento abierto y las de encadenamiento.
Informática III
Licenciatura en Informática a Distancia 19
FCA-UNAM
Unidad III. Métodos de búsqueda
Entre las transformaciones que se realizan sobre las llaves, se encuentran algunas
funciones que pueden involucran desde las operaciones básicas de sumas, restas,
multiplicaciones y divisiones, así como las de módulo, cuadrado, cambio de base
entre otras. En general las funciones de Hash, el mapear una llave por la dirección,
indica en qué dirección debe almacenarse el registros a que pertenece esa llave.
Para transformar estas llaves, las funciones de Hash, puede seccionar toda o parte
de las llaves, siendo estas partes sobre las que se aplicarán las operaciones antes
mencionadas.
Informática III
20 Licenciatura en Informática a Distancia
FCA-UNAM
Unidad III. Métodos de búsqueda
ACTIVIDAD 1
Utilice un editor de texto, para realizar su actividad, una vez que concluya envíe
su información; presione el botón Examinar para localizar el archivo en su
computadora y por último presione Subir este archivo.
ACTIVIDAD 2
Realiza una breve investigación sobre las aplicaciones de las funciones Hash en
los sistemas informáticos. Elabora un documento en Word de máximo 5 cuartillas,
donde incluyas una reseña de tu investigación, tus conclusiones y la bibliografía
y/o referencias utilizadas. Sube tu documento a la plataforma para su revisión.
Utilice un editor de texto, para realizar su actividad, una vez que concluya envíe
su información; presione el botón Examinar para localizar el archivo en su
computadora y por último presione Subir este archivo.
Informática III
Licenciatura en Informática a Distancia 21
FCA-UNAM
Unidad III. Métodos de búsqueda
ACTIVIDAD 3
Utilice un editor de texto, para realizar su actividad, una vez que concluya envíe
su información; presione el botón Examinar para localizar el archivo en su
computadora y por último presione Subir este archivo
Autoevaluación
Informática III
22 Licenciatura en Informática a Distancia
FCA-UNAM
Unidad III. Métodos de búsqueda
Bibliografía básica
Sitios electrónicos
Sitio Descripción
Informática III
Licenciatura en Informática a Distancia 23
FCA-UNAM
Unidad III. Métodos de búsqueda
Desarrollo
E=(e1,e2,....en)
V=(v1,v2,....vn)
Informática III
24 Licenciatura en Informática a Distancia
FCA-UNAM
Unidad III. Métodos de búsqueda
Por ejemplo:
Árboles.
Informática III
Licenciatura en Informática a Distancia 25
FCA-UNAM
Unidad III. Métodos de búsqueda
Los nodos que tienen descendientes se les conocen como nodos padres y a los
descendientes como nodos hijos. Un nodo padre puede tener 0 (cero) o varios
descendientes, pero un nodo descendiente no puede tener más que a un solo nodo
padre. No existe ninguna relación entre los nodos del mismo nivel, solo hacia sus
descendientes o ascendentes.
Representación de árboles
Informática III
26 Licenciatura en Informática a Distancia
FCA-UNAM
Unidad III. Métodos de búsqueda
Árboles binarios
Para los árboles estrictamente binarios y binarios, se pueden ocupar los cinco tipos
de recorridos clásicos, que son los que describen los siguientes algoritmos:
Informática III
Licenciatura en Informática a Distancia 27
FCA-UNAM
Unidad III. Métodos de búsqueda
El dato que contiene cada uno de sus nodos no debe de estar repetido
El valor del dato que contiene la raíz de la rama izquierda (si es que existe), debe
de tener un valor menor al de la raíz original
El dato de la rama derecha es mayor al de la raíz
Informática III
28 Licenciatura en Informática a Distancia
FCA-UNAM
Unidad III. Métodos de búsqueda
Operaciones
Existen diferentes operaciones que se pueden realizar en este tipo de árboles, entre
las que se encuentran:
> Búsquedas.
> Inserciones.
> Bajas
> Búsquedas
inicio
si el árbol esta vacío entonces
desplegar “árbol vacío y no se encuentra el elemento”
en caso contrario
si el valor del dato del nodo raíz es igual al del elemento que se busca
desplegar “búsqueda con éxito”
en caso contrario
si el valor del dato buscado es < al valor del nodo raíz
se continúa la búsqueda en el subárbol izquierdo
(llamándose recursivamente este algoritmo)
en caso contrario
si el valor del dato que se desea encontrar es > que el valor
del nodo raíz entonces
búsqueda se realizará en el subárbol derecho
Informática III
Licenciatura en Informática a Distancia 29
FCA-UNAM
Unidad III. Métodos de búsqueda
ACTIVIDAD 1
ACTIVIDAD 2
Informática III
30 Licenciatura en Informática a Distancia
FCA-UNAM
Unidad III. Métodos de búsqueda
ACTIVIDAD 3
Informática III
Licenciatura en Informática a Distancia 31
FCA-UNAM
Unidad III. Métodos de búsqueda
Autoevaluación
Informática III
32 Licenciatura en Informática a Distancia
FCA-UNAM
Unidad III. Métodos de búsqueda
Cuestionario
Informática III
Licenciatura en Informática a Distancia 33
FCA-UNAM
Unidad III. Métodos de búsqueda
Examen de autoevaluación
Informática III
34 Licenciatura en Informática a Distancia
FCA-UNAM
Unidad III. Métodos de búsqueda
Bibliografía básica
Sitios electrónicos
Sitio Descripción
LO QUE APRENDÍ
Informática III
Licenciatura en Informática a Distancia 35
FCA-UNAM
Unidad III. Métodos de búsqueda
Glosario de la unidad
Acceso aleatorio
O acceso directo. Es un método de acceder a los datos que, a diferencia del
acceso secuencial, permite acceder a cualquier dato sin pasar por los
precedentes. Usa direcciones calculadas.
Actualización
Muy usado en informática y de significado similar al uso coloquial. Revisión del
contenido de un programa o de un archivo.
Acumulador
Es uno de los elementos de la unidad aritmético-lógica de todo ordenador. En
programación es una variable usada para dar totales de datos similares leídos.
Algoritmo
Es una descripción de los pasos de una tarea.
Análisis
Con los términos de análisis de sistemas, funcional y orgánico se entienden las
tareas previas a la programación que sirven para dar solución informática a un
problema.
Analógico
Aplicable a circuito u ordenador. Contrasta con el término digital en que aquél trata
magnitudes que varían en rango continuo, mientras que los digitales operan sobre
magnitudes discretas de forma binaria.
Árbol
Es uno de los posibles tipos de estructurar los datos. Todos los elementos menos
uno, (el raíz), tienen un antecedente. Todos pueden tener otros elementos
asociados llamados consecuentes.
Informática III
36 Licenciatura en Informática a Distancia
FCA-UNAM
Unidad III. Métodos de búsqueda
Ascii
American standard code for information interchange. Es un código muy utilizado
para el intercambio de datos. Como los ordenadores solo procesan dígitos
binarios, cada letra, dígito o carácter especial tiene su correspondiente código
binario.
Asignación
Usado en programación. Es la acción de poner en una variable un valor, él
contenido de otra variable o el resultado de evaluar una expresión. En la mayoría
de los lenguajes se representa con el signo igual.
Base de datos
Es un conjunto de datos estructurados de forma que se hagan manejables de
forma sencilla a pesar de su volumen o de la complejidad de las relaciones entre
ellos.
Basic
(Beginner’s all-purpose symbolic instruction code). Código de instrucciones
simbólicas multiuso para principiantes. Es un lenguaje de programación diseñado
en 1964 para la enseñanza de la programación.
Batch
Modo de procesamiento de programas. El ordenador por medio del sistema
operativo gestiona la ejecución de una cola de programas sin interacción con el
usuario que los mandó ejecutar.
Bifurcación
En programación: transferencia de la secuencia de ejecución a otra parte del
programa. Puede ser condicional o incondicional aunque esta última está mal vista
en los lenguajes estructurados.
Binario
Informática III
Licenciatura en Informática a Distancia 37
FCA-UNAM
Unidad III. Métodos de búsqueda
Bit
Contracción de binary digit. Es la unidad elemental de información en el
ordenador. Su valor es 0 ó 1 puesto que todos los dispositivos, interruptores y
unidades de almacenamiento disponen únicamente de dos estados.
Bucle
En un programa es un grupo de instrucciones que se repiten hasta que se cumple
una condición.
Buffer
Área de almacenamiento temporal usado en la transferencia de datos entre la
memoria principal y los periféricos.
Bus
Conexión en paralelo por donde circulan los datos, las direcciones o las señales
de control en el interior del ordenador. Todos los componentes del ordenador
están conectados mediante buses.
Byte
Conjunto de bits que contiene el código para un carácter. El byte de 8 bits, llamado
octeto, es el más usado actualmente. Las capacidades de almacenamiento se
miden en bytes o en sus múltiples. 1 k (kilobytes) = 1024 bytes. 1 MB (megabyte)
= 1024k. 1GB (gigabyte) = 1024 MB.
C
Lenguaje de programación de alto nivel que posee características de los de bajo
nivel y esto lo hace adecuado para escribir software de sistemas.
Cadena
Informática III
38 Licenciatura en Informática a Distancia
FCA-UNAM
Unidad III. Métodos de búsqueda
Campo
Son los elementos diferenciados de un registro de información. Son los lugares
destinados para contener un dato determinado en un fichero o en una base de
datos.
Carácter
Dígito, letra o símbolo que puede ser tratado por un ordenador. Es la unidad
elemental de información desde el punto de vista externo.
Clave
Campo de datos que identifica a los registros.
Codificar
Es la parte de la programación consistente en escribir en un lenguaje informático
el algoritmo que resuelve un problema.
Código
Tabla de traducción entre todos los posibles símbolos de dos alfabetos. El más
conocido es el código ascii (american standard code for information interchange).
Cola
Estructura de información consistente en una lista lineal en la que la nueva
información se coloca en un extremo y la salida para procesar es por el otro
extremo. Ejemplos: la cola de trabajos pendientes de ejecutar o la cola de espera
de impresión de resultados.
Informática III
Licenciatura en Informática a Distancia 39
FCA-UNAM
Unidad III. Métodos de búsqueda
Comando
Mandato ejecutable por el ordenador. Cada una de las instrucciones que
componen el sistema operativo y que el ordenador puede traducir en acciones
específicas.
Compatibilidad
Dos ordenadores son compatibles cuando los programas que funcionan en uno de
ellos también lo hacen en el otro. Los grandes fabricantes de ordenadores son
quienes fijan los estándares de compatibilidad.
Compilador
Programa que traduce un programa escrito en un lenguaje de alto nivel a lenguaje
de máquina. Además de traducir se detectan posibles errores de sintaxis.
Datos
La materia prima de que se nutren los programas para producir resultados.
Pueden ser de varios tipos: numéricos, alfabéticos, alfanuméricos (cualquier
conjunto de símbolos) y lógicos (solo dos valores posibles, verdadero o falso).
Debugging
Depuración. Proceso de eliminar errores de un programa.
Diccionario de datos
Tabla con las propiedades y estructura de los ficheros que forman una base de
datos.
Digital
Es una cantidad que sólo puede asumir valores discretos.
Dirección
Etiqueta, nombre o número que identifica la posición de un dato en la memoria o
en una unidad de almacenamiento.
Informática III
40 Licenciatura en Informática a Distancia
FCA-UNAM
Unidad III. Métodos de búsqueda
Directorio
Tabla de los ficheros que se encuentran en un disco.
Directorio raíz
Es el directorio de nivel más alto en una estructura jerárquica de directorios.
Editor
Programa que permite escribir y corregir ficheros de texto como documentos o
programas.
Ejecutar
Realizar una instrucción en código máquina o bien hacer que se realicen las
instrucciones de un programa.
Ensamblador
Se conoce con este nombre tanto a un lenguaje de bajo nivel (cercano al lenguaje
máquina) como al programa que traduce a lenguaje máquina los programas
escritos en lenguaje ensamblador.
Estructura de datos
Conjunto de datos en que sus componentes están relacionados entre sí de una
forma particular y sobre los que se pueden realizar ciertas operaciones según sea
el tipo de relación que hay entre ellos.
Expresión.
Conjunto de variables, constantes, funciones y símbolos de operación que
expresan un cálculo a realizar. Proporcionan un valor que será del tipo (aritmético,
alfanumérico o lógico) de las variables y constantes que contiene.
Factor de bloqueo
Cantidad de registros lógicos que hay en cada registro físico de un fichero.
Informática III
Licenciatura en Informática a Distancia 41
FCA-UNAM
Unidad III. Métodos de búsqueda
Fichero
Conjunto organizado de información almacenado en un soporte. Está formado por
registros que contienen la información de cada elemento del fichero. Los registros
a su vez están divididos en campos, siendo cada campo uno de los datos del
registro. Por ejemplo en un fichero de clientes, cada cliente sería un registro y
tendríamos los campos: nombre, apellidos, dirección, teléfono, etc.
Fuente
Origen. Se dice que un programa está en lenguaje fuente cuando aún no ha sido
traducido por ningún compilador.
Implementa
Instalar y hacer funcionar.
Indexación
Operación que consiste en clasificar un fichero o una tabla según el valor de un
índice o de una clave.
Índice
Símbolo o número usado para identificar un elemento particular en una tabla.
Instrucción
Se llama instrucción a cada una de las líneas que componen un programa de
ordenador.
Intérprete
Programa que traduce instrucciones de lenguaje de alto nivel a lenguaje máquina
y las va ejecutando tras su traducción.
Iteración
Cada una de las repeticiones de las acciones contenidas en un bucle de
programa.
Informática III
42 Licenciatura en Informática a Distancia
FCA-UNAM
Unidad III. Métodos de búsqueda
K o kbyte
Es la unidad de medida de la capacidad de almacenamiento de información, tanto
de la memoria principal como de las memorias auxiliares (discos y disquetes). 1 k
son 1024 bytes, (2 elevado a 10 caracteres).
Lenguaje de programación
Es un lenguaje, con su léxico y su sintaxis, que se emplea para que el ordenador
ejecute las acciones que se han determinado en un algoritmo y se han codificado
en dicho lenguaje. Una primera clasificación de los lenguajes es en lenguajes de
bajo nivel (lenguajes máquina y ensambladores) y lenguajes de alto nivel (ada,
basic, cobol, fortran, pascal, etc.). Estos últimos, que son independientes de una
máquina particular, pueden clasificarse como de propósito especial y general;
también como lenguajes de procedimiento y declarativos. Actualmente se
evoluciona hacia lenguajes de más alto nivel o lenguajes de especificación.
Librería
Conjunto de programas o módulos almacenados generalmente sobre un
dispositivo magnético.
Lista
Conjunto de elementos de datos organizados de modo que se conoce la posición
relativa de cada elemento.
Longitud
Aplicado a una cadena de caracteres, a un campo o a un registro, es el número de
bytes que ocupa.
Loop
Bucle. Repetición de un cierto número de instrucciones el número de veces que
indique un contador o bien mientras se cumpla una condición.
Informática III
Licenciatura en Informática a Distancia 43
FCA-UNAM
Unidad III. Métodos de búsqueda
Macroinstrucción
Instrucción en un lenguaje ensamblador que genera varias instrucciones en
lenguaje máquina. En paquetes de programas se entiende por macros las
instrucciones que desencadenan otro conjunto más amplio de instrucciones.
Megabyte
Unidad de medida de capacidad de almacenamiento de información. Un megabyte
es 1024 kbytes y por tanto 1.048.576 bytes.
Módulo
En programación, cada uno de los bloques lógicos en que se puede dividir un
programa.
Multiprogramación
Técnica de utilización de un ordenador que permite la ejecución simultánea de
varios programas porque les dedica el procesador un pequeño tiempo a cada uno
de ellos.
Pila
Un tipo de estructura de datos en el que el último dato en llegar es el primero en
salir.
Programación
Técnicas destinadas a la resolución de un problema, usando para ello los
lenguajes de programación. Se manejan estructuras lógicas de los tipos:
secuencial, condicional e iterativa.
Recursividad
Propiedad de algunos lenguajes de programación de permitir que un programa
solicite su propia ejecución en el curso de su desarrollo.
Registro
Informática III
44 Licenciatura en Informática a Distancia
FCA-UNAM
Unidad III. Métodos de búsqueda
Conjunto de uno o más campos consecutivos que son tratados por un programa
como unidad de información. Son los componentes lógicos de los ficheros.
Sort
Programa para clasificar un conjunto de datos.
Subrutina
Conjunto de instrucciones que efectúan una tarea específica dentro de un
programa y al que es posible referirse.
Variable
En programación es una entidad dedicada a contener valores que pueden cambiar
durante la ejecución de un programa.
Velocidad
La rapidez en ejecutar instrucciones depende de la frecuencia en que trabaje un
reloj interno. Se mide en megahercios.
Velocidad de acceso
La velocidad de acceso a los datos contenidos en un disco duro se mide por el
tiempo de recuperación de un dato. Se expresa en milisegundos.
Informática III
Licenciatura en Informática a Distancia 45
FCA-UNAM
Unidad III. Métodos de búsqueda
MESOGRAFÍA
Bibliografía básica
Bibliografía complementaria
Sitios electrónicos
Informática III
46 Licenciatura en Informática a Distancia
FCA-UNAM
Unidad III. Métodos de búsqueda
Informática III
Licenciatura en Informática a Distancia 47
FCA-UNAM
Unidad III. Métodos de búsqueda
Informática III
48 Licenciatura en Informática a Distancia
FCA-UNAM
Unidad III. Métodos de búsqueda
Informática III
Licenciatura en Informática a Distancia 49
FCA-UNAM