Arreglos en c++ ejercicios resueltos

Búsqueda binaria y Método burbuja

Hacer un programa que permita hacer una Búsqueda binaria y ordenar los datos por el Método burbuja.

#include<iostream.h>
#include<conio.h>
#include<string.h>
#define MAX 50
struct ordenamiento
{int elem ;
};
 
void leerarray(int,struct ordenamiento []);
void burbuja (int,struct ordenamiento []);
void muestra (int,struct ordenamiento []);
int binaria(int,int,struct ordenamiento []);
void main()
{
int n,pos,z;
struct ordenamiento orden[MAX];
cout<<"Ingrese limite del arreglo:";
cin>>n;
leerarray(n,orden);
burbuja (n,orden);
muestra(n,orden);
cout<<"\nIngrese elemento a buscar ";
cin>>z;
pos=binaria(n,z,orden);
if(pos==-1)
cout<<endl<<"Elemento no se encuentra "<<endl;
else
cout<<endl<<"Elemento encontrado en la posicion "<<pos;
getch();
}
 
void leerarray(int n,struct ordenamiento a[])
{ for(int i=0;i<n;i++)
{
cout<<"Ingrese elemento "<<i<<":";
cin>>a[i].elem;
}
}
void burbuja (int n,struct ordenamiento a[])
{
int i,j;
struct ordenamiento temp;
for(i=1;i<n;i++)
for(j=n-1;j>=i;j--)
if(a[j-1].elem >a[j].elem)
{
temp=a[j-1];
a[j-1]=a[j];
a[j]=temp;
}
}
void muestra (int n,struct ordenamiento a[])
{
for(int i=0;i<n;i++)
cout<<"\n"<<a[i].elem;
}
int binaria(int n,int z,struct ordenamiento a[] )
{
int mitad, izq, der;
izq=0;der=n-1;
while(izq<=der)
{ mitad=(izq+der)/2 ;
if(z>a[mitad].elem)izq=mitad+1;
else if (z<a[mitad].elem)der=mitad-1;
else return mitad;
}
return -1;
}
Struct Arreglos - Búsqueda binaria y Método burbuja

Te comparte el siguiente ejercicio donde se realiza una Búsqueda binaria en un arreglo y aplicamos el Método burbuja para ordenarlos: Arreglos – Búsqueda binaria y Método burbuja

Para descargar el ejercicio: