Está en la página 1de 17

UNIVERSIDAD DE LAS FUERZAS ARMADAS-ESPE SEDE SANTO

DOMINGO
DEPARTAMENTO DE CIENCIAS DE LA VIDA Y LA AGRICULTURA

CARRERA DE INGENIERÍA AGROPECUARIA

PERIODO : Mayo 2022 – Septiembre 2022

ASIGNATURA : Introducción a la Programación

TEMA : Algoritmos de Busqueda

NOMBRES :

• Mendoza Erika

• Monar Samira

• Villa Edwin

• Yánez Genesis

• Yánez Ronald

NIVEL-PARALELO : Primer Nivel

DOCENTE : Ing. Margoth Guaraca. MSc.

FECHA DE ENTREGA : 8 de agosto de 2022

SANTO DOMINGO - ECUADOR

2022
Contenido

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

2. Sistemas de Objetivos ................................................................................................... 3

Objetivo General: ................................................................................................................. 3

Objetivos Específicos: .......................................................................................................... 3

3. Desarrollo .......................................................................................................................... 4

Algoritmos de Búsqueda ...................................................................................................... 4

¿Qué es un Array?................................................................................................................ 4

Tipos de Array ...................................................................................................................... 5

Arrays de una dimensión ..................................................................................................... 5

Arrays de dos dimensiones .................................................................................................. 5

Algoritmo de búsqueda binaria ........................................................................................ 11

4. Conclusiones .................................................................................................................... 16

5. Recomendaciones ............................................................................................................ 17

6. Referencias ...................................................................................................................... 17
1. Introducción

La clasificación es una aplicación esencial en informática. La mayoría de los

datos generados por un programa están ordenados de alguna manera, y muchos de

los cálculos que el programa tiene que hacer serían más eficientes si los datos en los

que se ejecuta el programa estuvieran ordenados. Uno de los tipos de cuentas que más

se benefician de operar sobre un conjunto ordenado de datos es la búsqueda

de datos: encontrar el número de teléfono de alguien en la libreta de direcciones es una

tarea muy sencilla y rápida si conocemos sus nombres, ya que la libreta de teléfonos

está ordenada alfabéticamente. Encontrar a que usuario corresponde un número de

teléfono dado, sin embargo, es una tarea prácticamente inabordable. Valga esto a modo

de ejemplo de cómo el disponer de una colección de datos ordenados simplifica la

búsqueda de información entre ellos, de ahí la importancia de las tareas de ordenación

y búsqueda y la relación que existe entre ellas. En el presente informe se dará a conocer

conceptos que nos ayuden a definir los algoritmos de búsqueda secuencial y binaria.

2. Sistemas de Objetivos
Objetivo General:

Realizar un informe investigativo sobre el tema algoritmo de búsqueda secuencial y binaria

que nos ayude a comprender el tema y aplicarlo en los pseudocódigos y códigos

correspondientes.

Objetivos Específicos:
❖ Investigar qué es un algoritmo de búsqueda binaria y cuál es su función en los

programas Pseint y Dev-C++.

❖ Revisar los diagramas de flujo correspondientes para captar este algoritmo.


❖ Comprender a cabalidad para qué sirve o es eficiente el algoritmo de búsqueda

binaria, para aplicarlo de manera adecuada en algún programa a realizar.

❖ Realizar un informe que detalle la función de este algoritmo para así ponerlo en

práctica en Dev-C++ y Pseint.

3. Desarrollo

Algoritmos de Búsqueda
La búsqueda es una operación que tiene por objeto la

localización de un elemento dentro de la estructura de datos. A

menudo un programador estará trabajando con grandes

cantidades de datos almacenados en arreglos y pudiera resultar

necesario determinar si un arreglo contiene un valor que

coincide con algún valor clave o buscado.

Siendo el array de una dimensión o lista una estructura de acceso directo y a su vez de acceso

secuencial, encontramos dos técnicas que utilizan estos dos métodos de acceso, para encontrar

elementos dentro de un array: Búsqueda secuencial y búsqueda binaria

¿Qué es un Array?

Los vectores son un tipo de array (arreglos). Son, de hecho, un array de una sola dimensión y

forman parte de la amplia variedad de estructuras de datos que nos ofrece C++, siendo además

una de las principales y más útiles estructuras que podremos tener como herramienta de

programación. [1]
Tipos de Array

Arrays de una dimensión

Un array (unidimensional, también


denominado vector) es una variable
estructurada formada de un número "n" de
variables simples del mismo tipo que son
denominadas los componentes o
elementos del array. El número de
componentes "n" es, entonces, la
dimensión del array. De igual manera que
en matemáticas, decimos que "A" es un
vector de dimensión "n".

Arrays de dos dimensiones

Un array en C puede tener una, dos o más dimensiones. Por ejempló, un array de dos

dimensiones también denominado matriz, es interpretado como un array (unidimensional) de

dimensión "f" (número de filas), donde cada componente es un array (unidimensional) de


dimensión "c" (número de columnas). Un array de dos dimensiones, contiene, pues, "f*c"

componentes.

Algoritmo de búsqueda lineal

La búsqueda secuencial busca un elemento de una lista utilizando un valor de destino llamado

clave. En una búsqueda secuencial (a veces llamada búsqueda lineal). Los elementos de una

lista o vector se exploran en secuencia uno después de otro.

La búsqueda secuencial se utiliza normalmente cuando el array no está ordenado. Comienza en

el principio del array y busca hasta que se encuentra el dato buscado y se llega al final de la

lista. [2]

Mejor Caso:

Es cuando la búsqueda termina tan pronto 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.

Buscar el elemento "12“

1. 12 = 12 Fin de la búsqueda

2. Mensaje “Elemento existe” posición 0


Peor Caso: Sucede cuando el elemento se encuentra en la última posición del array.

Ejemplo:

Buscar el elemento “39“

12≠39

32 ≠ 39

77 ≠ 39

8 ≠ 39

51 ≠ 39

63 ≠ 39

70 ≠ 39

24 ≠ 39

4 ≠39

39 = 39 Fin de la búsqueda

Mensaje “Elemento existe’’ posición 9

Búsqueda Secuencial Ventajas y Desventajas

Ventajas

• Es sencillo de implementar ya que únicamente se utilizan estructuras repetitivas.

• No requiere que el listado esté ordenado o en algún estado especial.

Desventajas

• El poco eficiente ya que se debe recorrer por completo el arreglo.

• Tiempo excesivo de procesamiento en vectores grandes.


• Análisis de datos

Datos de Entrada: i, pos, busca, a como Entero

Datos Auxiliares: Dimensión a [10]

Datos de Salida: Bandera como Lógico

Proceso: Para i  1 Hasta 10 con Paso 1 Hacer

Para i  1 Hasta 10 con Paso 1 Hacer

• Pseudocódigo
• Diagrama de Flujo
• Ejecución PseInt

• Dev C++

• Compilacion y ejecucion Dev C++


• Prueba de Escritorio

Algoritmo de búsqueda binaria

También conocida como búsqueda de intervalo medio, es un algoritmo de búsqueda, que

encuentra la posición de un valor en un array ordenado.

La búsqueda binaria comienza por comparar el elemento del medio del arreglo con el valor

buscado. Si el valor buscado es igual al elemento del medio, su posición en el arreglo es

retornada. Si el valor buscado es menor o mayor que el elemento del medio, la búsqueda

continua en la primera o segunda mitad, respectivamente, dejando la otra mitad fuera de

consideración.

Array es se le denomina vector, formación, matriz, una zona de almacenamiento contiguo que

contiene una serie de elementos del mismo tipo, los elementos de la matriz.

¿Cómo funciona?

La búsqueda binaria funciona en arreglos ordenados. Consiste en eliminar, tras cada

comparación, la mitad de los elementos del arreglo en los que se efectúa la búsqueda, comienza

por comparar el elemento del medio del arreglo con el valor buscado. Si el valor buscado es

igual al elemento del medio, su posición en el arreglo es retornada. Si el valor buscado es menor
o mayor que el elemento del medio, la búsqueda continuará en la primera o segunda mitad,

respectivamente, dejando la otra mitad fuera de consideración; y si son iguales, se ha

encontrado dicho valor buscado y se devuelve la posición y sale del bucle; pero si no es así

seguirá buscando dicho valor dentro del bucle y hará las comparaciones necesarias hasta

encontrar el valor buscado. [3]

Diseño del Algoritmo

• Análisis de datos

Datos de Entrada: a, b, min max, i, j, t, como entero

Datos Auxiliares: Dimensión a [10]

Datos de Salida: med, cont como entero

Proceso: Si b < a[min] o b > a[max] Entonces


Escribir "EL numero no esxiste";
SiNo
Mientras min <= max Hacer
cont <- cont + 1;
med <- trunc((max + min)/2);
Si b = a[med] Entonces
Escribir "El numero esta en el indice: ", med;
min <- max +1;
SiNo
Si b < a[med] Entonces
max <- med -1;
SiNo
min <- med +1;
FinSi
FinSi
FinMientras
• Pseudocódigo
• Diagrama de Flujo
• Dev C++
• Compilacion y ejecucion Dev C++

• Prueba de escritorio

4. Conclusiones

• El método de búsqueda binaria se encarga de examinar primero el elemento central de

la lista; si este es el elemento buscado entonces la búsqueda ha terminado. El tipo de

búsqueda binaria se utiliza en vectores ordenados.

• Luego de realizar este trabajo hemos visto como los algoritmos son una de las

herramientas más complejas y aplicables en el área de informática.

• En el caso del método de búsqueda binaria, los arreglos deben estar únicamente

ordenados, como se planteó anteriormente, por su parte el método de búsqueda

secuencial o lineal, puede emplearse tanto en arreglos pequeños, como en aquellos que

no están ordenados.
5. Recomendaciones

• Antes de realizar una búsqueda empleando el algoritmo binario se debe verificar que

es arreglo este ordenado de manera ascendente y descendente

• Utilizar un algoritmo de búsqueda de acuerdo a sus necesidades para una mejor

eficiencia en la búsqueda de elementos y procesamiento de la misma.

6. Referencias

[1] J. Meza, «Arrays,» 2021.


[2] T. Alfaro, «Algoritmos de Busqueda y Ordenamiento».
[3] J. Saldaña, «Búsqueda Binaria en C++,» 2019.

También podría gustarte