Arreglos – Búsqueda binaria y Método burbuja
Hacer un programa con arreglos, utilizando la Búsqueda binaria, para buscar un elemento dentro de un arreglo y mediante el Método burbuja ordenar los elementos.
#include<iostream.h>
#include<conio.h>
#define MAX 50
void leerarray(int,int[]);
void burbuja(int,int[]);
void listado(int,int[]);
int binaria(int,int[],int);
void main()
{
int x[MAX],elem,n,pos;
cout<<"Ingrese limite del arreglo";
cin>>n;
leerarray(n,x);
burbuja(n,x);
listado(n,x);
cout<<"Ingrese elemento a buscar ";
cin>>elem;
pos=binaria(n,x,elem);
if(pos==-1)
cout<<endl<<"Elemento no se encuentra "<<endl;
else
cout<<endl<<"Elemento encontrado en la posicion "<<pos;
getch();
}
void leerarray(int n,int a[])
{ for(int i=0;i<n;i++)
{
cout<<"Ingrese elemento "<<i<<":";
cin>>a[i];
}
}
void burbuja (int n,int a[])
{
int i,j;
float temp;
for(i=1;i<n;i++)
for(j=n-1;j>=i;j--)
if(a[j-1]>a[j])
{
temp=a[j-1];
a[j-1]=a[j];
a[j]=temp;
}
}
void listado (int n,int a[])
{
for(int i=0;i<n;i++)
cout<<" "<<a[i];
}
int binaria(int n,int a[],int ele)
{
int mitad, izq, der;
izq=0;der=n-1;
while(izq<=der)
{ mitad=(izq+der)/2 ;
if(ele>a[mitad])izq=mitad+1;
else if (ele<a[mitad])der=mitad-1;
else return mitad;
}
return -1;
}
Te comparto el siguiente ejercicio donde se realiza una Búsqueda binaria en un Struct de arreglo y aplicamos el Método burbuja para ordenarlos: Struct Arreglos – Búsqueda binaria y Método burbuja