Ejemplo 4.7

Búsqueda Binaria en un Arreglo Ordenado

Construir un programa que implemente el algoritmo de búsqueda binaria para encontrar un elemento en un arreglo ordenado. Este método es mucho más eficiente que la búsqueda secuencial, reduciendo el espacio de búsqueda a la mitad en cada iteración.

Requisitos

  • Validar que N esté en el rango [1, 50]
  • Leer N elementos en un arreglo (deben estar ordenados)
  • Leer el valor X a buscar
  • Implementar búsqueda binaria:
    • Inicializar IZQ ← 1, DER ← N, BAN ← 1
    • Mientras IZQ ≤ DER y BAN = 1:
    • Calcular CEN ← (IZQ + DER) DIV 2
    • Si X = VECTOR[CEN]: elemento encontrado (BAN ← 0)
    • Si X > VECTOR[CEN]: buscar en mitad derecha (IZQ ← CEN + 1)
    • Si X < VECTOR[CEN]: buscar en mitad izquierda (DER ← CEN - 1)
  • Mostrar si el elemento fue encontrado o no según el valor de BAN

Ejemplo de uso esperado

// Entrada:
Ingrese número de elementos: 7
Ingrese los 7 datos (deben estar ordenados):
10 20 30 40 50 60 70
Ingrese el dato a buscar: 40

// Salida:
=========================================
El elemento SI está en el arreglo
=========================================

// Ejemplo 2 - Elemento no encontrado:
Ingrese el dato a buscar: 25

// Salida:
=========================================
El elemento NO está en el arreglo
=========================================

Notas rápidas

Asegúrate de:

  • El arreglo DEBE estar ordenado para que la búsqueda binaria funcione correctamente
  • La variable BAN es una bandera: 1 = no encontrado, 0 = encontrado
  • Usar división entera (DIV) para calcular el centro
  • En Java, ajustar índices: el arreglo usa base 0, el algoritmo usa base 1
  • Tip: La búsqueda binaria tiene complejidad O(log n), mucho más rápida que O(n) de búsqueda secuencial

📊 Diagrama de Flujo

El diagrama está dividido en tres partes:

Parte A: Validación y Lectura del Arreglo

Diagrama Parte A - Lectura

Parte B: Búsqueda Binaria

Diagrama Parte B - Búsqueda

Parte C: Mostrar Resultado

Diagrama Parte C - Resultado

Diagrama de flujo completo del algoritmo de búsqueda binaria