domingo, 26 de agosto de 2012

Recursividad Busqueda Binaria C++

Problema:
Se debe realizar un algoritmo recursivo que dado un arreglo de "n" enteros ordenado de forma ascendente y sin elementos repetidos, realize una busqueda binaria de un elemento "e"

Solucion:
#include <iostream>

using namespace std;

bool bBinaria(int arr[], int base, int tope, int e){
    int aux;
    aux = (base+tope)/2;

    if(arr[aux]!=e && (base==tope)) return false;
    if(arr[aux]==e) return true;
    if(arr[aux]<e) return bBinaria(arr, aux+1, tope, e);
    if(arr[aux]>e) return bBinaria(arr, base, aux-1, e);
}

int main(){
    int n, e;
    cout << "Proporcione el tamaño del arreglo"<<endl;
    cin >> c;
    int arr[n-1];

    cout <<"Introduzca elementos en el arreglo"<<endl;
    for(int i=0; i<c; i++){
        cin >> arr[i];
    }

    cout <<"Elemento a buscar"<<endl;
    cin >> e;

    if(bBinaria(arr, 0, n-1, e)) cout << "El elemento se encuentra en el arreglo"<<endl;
    else cout << "No se encontro el elemento" <<endl;

    return 0;
}

6 comentarios:

  1. No compila si dejas la c, se debe cambiar la c por la n en esta parte:

    int main(){
    int n, e;
    cout << "Proporcione el tamaño del arreglo"<> c;
    int arr[n-1];


    Gracias por tu programa. Me sirvió :D

    ResponderEliminar
  2. en visual studio no compila pero en dev c++ si solo le cambian la n por la c

    ResponderEliminar
  3. Baccarat Online at WildCard.com - Worrione
    › baccarat-online- › baccarat-online- Feb 18, 2020 — Feb 18, 2020 We will 인카지노 help you place 바카라 your own Baccarat Baccarat Baccarat. Best Baccarat 제왕 카지노 Site Online. Live Baccarat Blackjack. Online Baccarat Baccarat.

    ResponderEliminar