martes, 16 de julio de 2013

Busqueda Binaria C++

Hola amig@s esta vez les he traído el código de la búsqueda binaria.

Explicacion:


Binaria:
Consiste en dividir intervalos de búsqueda en dos partes , comparando el
elemento buscado con el central. En caso de no ser iguales se redefinen
los extremos del intervalos(según el elemento central sea mayor o menor
que el buscado) disminuyendo el espacio de búsqueda
El proceso concluye cuando el elemento es encontrado.

Este método funciona únicamente para arreglos ordenados .

Con cada iteración del método el espacio de búsqueda se reduce a la
mitad , por lo tanto el número de comparaciones se reduce notablemente.
Esta disminución resulta significativa cuanto más grande sea el arreglo.


Código:


#include<iostream>
using namespace std;
void binaria(int x,int v[],int n);
int main(){
 int x,v[100],n;
 do{
  cout<<"\nnumero de datos: ";
  cin>>n;
 }while(n<1||n>100);
 for(int i=0;i<n;i++){
  v[i]=i;
 }
 cout<<"\nnumero a buscar: ";
 cin>>x;
 binaria(x,v,n);
 system("pause");
 return 0;
}
void binaria(int x,int v[],int n){
 int izq=1,der=n,cent;
 bool bandera=false;
 while((izq<=der)&&(bandera==false)){
  cent=int(izq+der)/2;
  if(x==v[cent]){
   bandera=true;
  }else{
   if(x>v[cent]){izq=cent+1;}else{der=cent-1;}
  }
 }
 if(bandera==true){cout<<"\nel elemento esta en la posicion: "<<cent<<"\n\n";}
 else{cout<<"\nel elemento no se encuentra en el arreglo"<<"\n\n";}
}



Descarga el código desde aquí.

No hay comentarios :

Publicar un comentario