PLE:Unidad4Ejercicio16

/* Programa:        Unidad4Ejercicio16.cpp Fecha:           10/01/2006 Descripción:     Búsqueda dicotómica sobre un array.

using namespace std;
 * 1) include
 * 2) include
 * 3) include
 * 1) include

const int MAX = 100; int busca(int array[], int num); void muestra(int array[]); void ordena(int array[]);

void main {     int num[MAX], i, n, pos; // Asignamos valores aleatorios for(i = 0; i < MAX; i++) num[i] = random(100);

// Mostramos en pantalla el array desordenado cout << "Array desordenado " << endl; muestra(num);

// ordeno el array ordena(num);

// Mostramos en pantalla el array ordenado cout << "Array ordenado " << endl; muestra(num);

cout << " Introduzca un numero "; cin >> n;

pos = busca(num, n);

if(pos == -1) cout << "No existe el elemento buscado "; else cout << "El numero buscado ocupa la posicion " << pos;

cin.ignore; cin.get; }

int busca(int array[], int num) {     int izq = 0, der = MAX-1; int cen = (izq + der)/2, pos = -1; while (array[cen]!=num && izq < der) {	     if (array[cen] > num) der=cen-1; else izq = cen+1; cen = (izq+der)/2; }//fin mientras if (array[cen] == num) pos = cen; return pos; }

void muestra(int array[]) {     int i;      for(i = 0; i < MAX; i++) cout << array[i] << '\t'; }

void ordena(int array[]) {     int i, j, aux; for(i=0; i < MAX; i++) {	     for(j = 1 ;j < MAX; j++) {	     	if(array[j-1] > array[j]) {			     aux = array[j]; array[j] = array[j-1]; array[j-1] = aux; }     	}      } }