Recursión: Busqueda binaria en vector ordenado

busqueda binaria vector odenado recursion.html
#include <stdio.h>

int buscar(int v[], int i, int d, int x);

int main(){
	
	int vector[] = {1,2,3,4,5,6};
	int dato, izq = 0, der = 0, resultado;
	
	printf("Ingrese numero a buscar: ");
	scanf("%d",&dato);
	fflush(stdin);
	
	resultado = buscar(vector, izq, der, dato);
	
	printf("%d ",resultado); //no sé
	
	system("pause");
}

int buscar(int v[], int i, int d, int x){
	
	int centro;
	
	if(i>=d){
		centro = (i+d)/2;
	
	if(v[centro]==x){
		return centro; // Caso base 1, exito
		
	}
	else{
		if(v[centro]>x){
			return buscar(v, i, centro-1, x); //izquierda
		}
		else{
			return buscar(v, centro+1, d, x); // derecha
		}
	}
	
	}
	else{ // i>d
			return (-1); // Caso base 2, fracaso
		}
}

No hay comentarios:

Publicar un comentario