Está en la página 1de 11

Instituto Tecnolgico de Ciudad Valles

ESTRUCTURA DE DATOS

Ingeniera en Sistemas Computacionales.

Prof.: Lic. Horacio Garca Aldape.

REPORTE DE PRCTICAS
Realizado por: Lucero Del Castillo Lrraga.

28 de noviembre del 2012 .

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");

printf("\n printf("\n printf("\n

3. Buscar elemento en el arreglo\n\n"); 4. Salir\n\n"); Elija una opcion\n\n\t"); scanf("%d", &opc);

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");

} } break; case 4: printf("\n break; default: printf("\n } } while (opc!=4); }

Hasta pronto!!");

Opcion no valida...");

Compilar & ejecutar:

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;

else alto=central-1; central=(bajo+alto)/2;}

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");

break; default: printf("\n\n } }while(opc!=5); getch(); return 0; }

Opcion no valida....\n\n");

Compilar & ejecutar:

También podría gustarte