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 es un algoritmo eficiente que divide repetidamente el arreglo a la mitad. Tiene complejidad O(log n), mucho más rápida que la búsqueda secuencial O(n). Asegúrate de que el arreglo esté ordenado antes de aplicar este algoritmo.

📊 Diagrama de Flujo

El diagrama está dividido en tres partes: