CONTENIDO DE LA LECCIÓN 18
CONTENIDO DE LA LECCIÓN 18 CONTENIDO DE LA LECCIÓN 18
MIGUEL Á. TOLEDO MARTÍNEZ /* El siguiente programa: BINARIO.CPP, utiliza una búsqueda binaria para localizar valores en el arreglo llamado contador, el cual contiene los valores de 1 a 100. La función busquedaBinaria imprime mensajes que describen el proceso. */ #include //Para cout y cin int busquedaBinaria(int arreglo[], int valor, int tamano) { int encontrado = 0; int alto = tamano, bajo = 0, enmedio; void main(void) { enmedio = (alto + bajo) / 2; cout
MIGUEL Á. TOLEDO MARTÍNEZ SOLUCIÓN DE PROBLEMAS EN ACCIÓN: Búsqueda en un arreglo con iteración (Búsqueda secuencial) PROBLEMA Diversas aplicaciones requieren de un programa para buscar un determinado elemento en un arreglo. Para realizar esta tarea se usan dos algoritmos comunes que son búsqueda secuencial o serial y búsqueda binaria. Por lo común, la búsqueda secuencial se utiliza para arreglos no ordenados y la búsqueda binaria en arreglos ordenados. En el siguiente problema veremos la búsqueda secuencial; en un problema posterior veremos la búsqueda binaria. Desarrolle una función que busque, en forma secuencial, en un arreglo de enteros, el valor de un elemento dado y que regrese el índice del elemento si éste se encuentra en el arreglo. DEFINICIÓN DEL PROBLEMA Debido a que se trata de una función, la definición del problema se enfocará a la interfaz de la función. Por consiguiente, se debe considerar que la función aceptará y regresará algo. Llamaremos a la función busquedaSec() A partir del enunciado del problema, la función deberá buscar en un arreglo de enteros un valor de un elemento determinado. De esta manera, la función necesita dos cosas para realizar este trabajo: (1) el arreglo y (2) el elemento que se va a buscar. Estos serán los parámetros de la función, ¿deberán ser de valor o de referencia? Bueno, la función no cambiará ni al arreglo ni al elemento a buscar, ¿es correcto? Por lo tanto, los parámetros serán por valor. Después, necesitamos determinar que va a regresar la función al programa llamador. A partir del enunciado del problema, se observa que la función necesita regresar el índice del elemento buscado, si se encuentra en el arreglo. En C++ todos los índices de los arreglos son enteros, por lo tanto la función regresará un valor entero. Pero, ¿qué pasa si el elemento que se busca no se encuentra en el arreglo? Se regresará algún valor entero que aclare esta situación. Dado que, en C++ los índices de los arreglos se encuentran en un rango de 0 a algún entero positivo finito, si el elemento no se encuentra en el arreglo, regresará el entero -1. De esta manera usaremos –1 para indicar la condición no encontrado, porque en C++ ningún índice de arreglo tiene este valor. La descripción de la interfaz de la función será: Función busquedaSec(): Busca en un arreglo entero un valor de elemento dado. Acepta: Un arreglo de enteros y el elemento que se busca. Regresa: El índice del arreglo del elemento, si se encuentra, o el valor –1 si no se encuentra el elemento. La descripción de interfaz de la función anterior proporciona toda la información necesaria para escribir la interfaz de la función, como sigue: int busquedaSec(int arreglo[MAX], int elemento) La interfaz indica que la función aceptará dos cosas: (1) un arreglo de elementos enteros MAX y (2) un valor entero, llamado elemento, que será el valor que se busca. La siguiente tarea es desarrollar el algoritmo de búsqueda secuencial. ARREGLOS, APUNTADORES Y ESTRUCTURAS – LECCIÓN 18 18-45
- Page 1 and 2: MIGUEL Á. TOLEDO MARTÍNEZ CONTENI
- Page 3 and 4: MIGUEL Á. TOLEDO MARTÍNEZ LECCIÓ
- Page 5 and 6: MIGUEL Á. TOLEDO MARTÍNEZ ELEMENT
- Page 7 and 8: MIGUEL Á. TOLEDO MARTÍNEZ Con las
- Page 9 and 10: MIGUEL Á. TOLEDO MARTÍNEZ del arr
- Page 11 and 12: MIGUEL Á. TOLEDO MARTÍNEZ // MUES
- Page 13 and 14: MIGUEL Á. TOLEDO MARTÍNEZ que exp
- Page 15 and 16: MIGUEL Á. TOLEDO MARTÍNEZ Ejemplo
- Page 17 and 18: MIGUEL Á. TOLEDO MARTÍNEZ Ejemplo
- Page 19 and 20: MIGUEL Á. TOLEDO MARTÍNEZ void ma
- Page 21 and 22: MIGUEL Á. TOLEDO MARTÍNEZ PASO DE
- Page 23 and 24: MIGUEL Á. TOLEDO MARTÍNEZ void pa
- Page 25 and 26: MIGUEL Á. TOLEDO MARTÍNEZ Ejemplo
- Page 27 and 28: MIGUEL Á. TOLEDO MARTÍNEZ int bus
- Page 29 and 30: MIGUEL Á. TOLEDO MARTÍNEZ El cuer
- Page 31 and 32: MIGUEL Á. TOLEDO MARTÍNEZ /******
- Page 33 and 34: MIGUEL Á. TOLEDO MARTÍNEZ Ejemplo
- Page 35 and 36: MIGUEL Á. TOLEDO MARTÍNEZ Ejemplo
- Page 37 and 38: MIGUEL Á. TOLEDO MARTÍNEZ /* El s
- Page 39 and 40: MIGUEL Á. TOLEDO MARTÍNEZ escribi
- Page 41 and 42: MIGUEL Á. TOLEDO MARTÍNEZ /* El s
- Page 43: MIGUEL Á. TOLEDO MARTÍNEZ Ejemplo
- Page 47 and 48: MIGUEL Á. TOLEDO MARTÍNEZ // Busc
- Page 49 and 50: MIGUEL Á. TOLEDO MARTÍNEZ Paso 1
- Page 51 and 52: MIGUEL Á. TOLEDO MARTÍNEZ { j = i
- Page 53 and 54: MIGUEL Á. TOLEDO MARTÍNEZ un tama
- Page 55 and 56: MIGUEL Á. TOLEDO MARTÍNEZ necesit
- Page 57 and 58: MIGUEL Á. TOLEDO MARTÍNEZ { for (
- Page 59 and 60: MIGUEL Á. TOLEDO MARTÍNEZ // Comp
- Page 61 and 62: MIGUEL Á. TOLEDO MARTÍNEZ INICIAC
- Page 63 and 64: MIGUEL Á. TOLEDO MARTÍNEZ Esta ve
- Page 65 and 66: MIGUEL Á. TOLEDO MARTÍNEZ • Los
- Page 67 and 68: MIGUEL Á. TOLEDO MARTÍNEZ Es posi
- Page 69 and 70: MIGUEL Á. TOLEDO MARTÍNEZ p[100];
- Page 71 and 72: MIGUEL Á. TOLEDO MARTÍNEZ a) Cree
- Page 73 and 74: MIGUEL Á. TOLEDO MARTÍNEZ d) ¿cu
- Page 75 and 76: MIGUEL Á. TOLEDO MARTÍNEZ medio d
- Page 77 and 78: MIGUEL Á. TOLEDO MARTÍNEZ EXAMEN
MIGUEL Á. TOLEDO MARTÍNEZ<br />
/* El siguiente programa: BINARIO.CPP, utiliza una búsqueda binaria para localizar<br />
valores en el arreglo llamado contador, el cual contiene los valores de 1 a<br />
100. La función busquedaBinaria imprime mensajes que describen el proceso.<br />
*/<br />
#include //Para cout y cin<br />
int busquedaBinaria(int arreglo[], int valor, int tamano)<br />
{<br />
int encontrado = 0;<br />
int alto = tamano, bajo = 0, enmedio;<br />
void main(void)<br />
{<br />
enmedio = (alto + bajo) / 2;<br />
cout