Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ESTRUCTURA DE DATOS
REPORTE DE PRCTICAS
Realizado por: Lucero Del Castillo Lrraga.
Un algoritmo de bsqueda es aquel que est diseado para localizar un elemento con ciertas propiedades dentro de una estructura de datos.
Cdigo empleado:
#include <stdio.h> #include <stdlib.h> main() { system("color 9E"); getch(); int num[10], opc, i, j, ban, bus; do { printf("\n\n\t MENU PRINCIPAL\n"); printf("\n 1. Agregar elementos al arreglo\n\n"); printf("\n 2. Mostrar elementos del arreglo\n\n");
switch(opc) { case 1: for(i=0;i<10;i++) { printf(" Escriba el elemento para la posicion [%d]:",i+1); scanf("%d",&num[i]); } break; case 2: for(i=0;i<10;i++) { printf("\n Posicion [%d]:%d",i+1,num[i]); } break; case 3: printf("\n Escriba el elemento a buscar"); scanf("%d", &bus); ban=0; for(i=0;i<10;i++) { if(num[i]==bus) { printf("\n El elemento %d fue encontrado en la posicion [%d]...", bus,i+1); ban=1; break; } if(ban==0) { printf("\n Se encontro el elemento\n\n\t");
Hasta pronto!!");
Opcion no valida...");
Para realizar una bsqueda binaria, lo que hacemos es lo siguiente: dividimos el arreglo en dos y tomamos la casilla que se encuentra entre estos subarreglos. Si la casilla que escogimos es igual al dato que buscamos, hemos encontrado la solucin. Si ocurre que son distintos, revisamos los dos posibles casos: si la casilla es ms grande que el dato que estamos buscando, las casillas mayores tambin lo sern y podemos desecharlas; en caso contrario nos deshacemos de las casillas menores. Despus aplicamos el mismo mtodo en las casillas restantes.
Cdigo Empleado:
#include <stdio.h> #include <conio.h> #include <cstdlib> #include <iostream> #define TAM 10 main(){ system("color 4e"); getch(); int numeros[TAM],opc,alto,bajo,central, buscado,j,k,i,aux;
do{ printf("\n\n MENU PRINCIPAL\n\n\t"); printf("\n 1.-Agregar elementos al arreglo\n\n"); printf("\n 2.-Mostrar elementos del arreglo\n\n\t"); printf("\n 3.-Ordenar elementos del arreglo\n\n\t"); printf("\n 4.-Buscar elemento(con busqueda binaria)...\n\n\t"); printf("\n 5.-Salir\n\n\t"); printf("\n Por favor elija su opcin:.....\n\n\t"); scanf("%d",&opc); switch(opc){ case 1: for(i=0;i<TAM;i++){ printf("\n Escriba el elemento para la posicion [%d]: ",i+1); scanf("%d",&numeros[i]); } break; case 2: for(i=0;i<10;i++){ printf("\n\n Posicion [%d]: %d ",i+1,numeros[i]); } break; case 3: for(j=0;j<10;j++){ for (k=j;k<10;k++){ if (numeros[k]<numeros[j]){ aux=numeros[k]; numeros[k]=numeros[j]; numeros[j]=aux; } } }
break;
case 4: printf("\n Escribe el valor a buscar:\n\n\t"); scanf("%d", &buscado); bajo=0; alto=TAM-1; central=(bajo+alto)/2; while(bajo<alto && buscado != numeros[central]){ if(buscado>numeros[central]) bajo=central+1;
if(buscado==numeros[central]) printf("\n\n\t%d posicion %d", buscado, central+1); else printf("\n%d break; case 5: printf("\n\n No existe", buscado); Encontrado en
Hasta pronto\n\n");
Opcion no valida....\n\n");