Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/03/2011, 20:56
kazekirino
 
Fecha de Ingreso: marzo-2011
Mensajes: 5
Antigüedad: 13 años, 1 mes
Puntos: 0
No comprendo esta parte (busqueda binaria)

Buenos dias!... soy nuevo en el foro y antes que nada... holaaa!!... jaja. Bueno, resulta que hace alrededor de una 1 semana, decidi comenzar un curso de C de esos que andan por internet.. pero lo mas detallado posible. encontre uno bastante bueno (y bastante extenso)... y hasta el dia de hoy, el aprendizaje junto con la compilacion de mis primeros programas con turbo c++ 4.5... ivan de la mano. y de hecho todavia van de la mano, solo que me inquieta no saber a que se refiere una parte del codigo de la seccion de "busqueda binaria"... es decir, entiendo el codigo, pero no entiendo como es que las variables "bajo y alto" actuan en el siguiente codigo:

#include <stdio.h>
#include <conio.h>
#define BUC 50

main()
{
int vector[BUC], num, resultado, a, mitad,c;
for(a=0;a<=BUC-1;a++)
{
vector[a]=a*2;
}
printf("pone un num para buscar en el vector:\t");
scanf("%d",&num);
int bajo=0,alto= BUC-1;
while (bajo<=alto)
{
mitad = (bajo+alto)/2;
if(num==vector[mitad])
resultado=mitad;
if(num<vector[mitad])
alto= mitad -1;
else
bajo= mitad +1;
}
if(resultado!= -1)
printf("num %d encontrado en posicion %d",num,resultado);
else
printf("numero no encontrado");
getch;
return 0;
}

es decir, lo que no entiendo es como hace este programa, mediante estas variables... para llegar al resultado, y encontrar el numero buscado. si alguien puede darme una explicacion mas o menos detallada de lo que aqui sucede, lo agradeceria, ya que al leer el codigo, todavia no me cierra como es que se llega al resultado... lamento no poder ser mas explicito, pero es que no se como explicar bien lo que no entiendo. gracias de antemano, y espero entender esta parte por que si no debere abandonar el lenguaje ya que esto es practicamente lo mas basico del mismo. Muchas Gracias!.