C/Visual C - Busqueda binaria

 
Vista:
Imágen de perfil de angel

Busqueda binaria

Publicado por angel (16 intervenciones) el 09/10/2017 03:17:49
como puedo realizar una busqueda binaria, tengo este codigo de busqueda secuencial

1
2
3
4
5
6
7
8
9
10
11
12
13
else if (opc == "3")
{
    BusquedaSecuencial B;
    string clave;
    cout << "Indique un valor a buscar y se le devolvera el indice: " << endl;
    cin >> clave;
    for(unsigned int i = 0; i < MiLista.cantidad(); i++)
    {
        if (clave==MiLista.posicion(i).getFecha()){
            cout<<"El valor "<<clave<<" si esta en la lista en la posicion ";
            cout<<i+1<<endl;}
    }
    system("pause");
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de gregory
Val: 73
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Busqueda binaria

Publicado por gregory (24 intervenciones) el 14/10/2017 00:08:38
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//en c
//include <stdio.h>
int main()
{
  contador=0;
 int p=0;
 printf("ingrese un numero:");
scanf("%d",&p);
int valor=p;
 int arr[70]={0};
int pivote=70-0/2;
int encontrado=0;
int minimo=0;
int maximo=70;
  while(encontrado==0)
{
   if(arr[pivote]==p)
   {
   encontrado=1;
  }
 else if(arr[minimo]==p)
 {
  encontrado=1;
 }
else
{
 minimo++;
}
 else if(arr[maximo]==p)
 {
  encontrado=p;
 }
else
{
  maximo--;
}
pivote=maximo-minimo/2;
}
}
Su complejidad es de log(n) algo mas rapido que la busqueda secuencial
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar