void buscar(const Vector &par_vector,const int &par_dato,const unsigned &par_tipo){
	switch (par_tipo){
		case 1:
			busqueda_secuencial(par_vector,par_dato);
			break;
		case 2:
			busqueda_binaria(par_vector,par_dato);
			break;
	}
}
Exemple #2
0
int busqueda_binaria(int* vector, int tamanio, int inicio, int fin, int valor){
	static int cuenta = 0;
	cuenta++;
	if (cuenta < 40){
		//printf("%d ==> %d \n", inicio, fin);
	}
	if (inicio > fin){
		return -1;
	}
	int medio = ((inicio + fin)/2);
	if (cuenta < 40){
		/*printf("inicio + fin div 2: %d\n", ((inicio + fin)/2));
		printf("Medio: %d\n", medio);*/
	}
	if (vector[medio] == valor){
		return medio;
	} else if (vector[medio] > valor){
		return busqueda_binaria(vector, tamanio, inicio, medio - 1, valor);
	} else {
		return busqueda_binaria(vector, tamanio, medio + 1, fin, valor);
	}
}
Exemple #3
0
int llamar(int *vector, int tamanio, int valor){
	return busqueda_binaria(vector, tamanio, 0, tamanio -1, valor);
}