PS 4.8 - Búsqueda Secuencial Ordenada

Búsqueda optimizada en un arreglo ordenado ascendentemente.

📝 Descripción del Problema

Realizar una búsqueda secuencial en un arreglo (VECTOR) que está ordenado. La búsqueda debe detenerse si el elemento actual (V[I]) es mayor que el elemento buscado (X), ya que esto indicaría que X no se encuentra en el arreglo.

Datos: VECTOR (arreglo de enteros), X (entero a buscar).

💡 Pistas y Fórmulas Clave

  • La clase principal debe llamarse BusquedaSecuencialOrdenada.java.
  • Este problema se resuelve con un solo bucle while.
  • La condición del bucle es clave. Debe continuar mientras ambas cosas sean ciertas:
    1. El índice i está dentro de los límites del arreglo (i < vector.length).
    2. El elemento actual es menor que el buscado (vector[i] < x).
  • Después de que el bucle se detiene, se debe hacer una verificación final:
    • if (i < vector.length && vector[i] == x) -> Encontrado. Devolver i.
    • else -> No encontrado. Devolver -1.
  • Los tests deben probar todos los casos: encontrado (inicio, medio, fin) y no encontrado (menor, en medio, mayor).

📊 Diagrama de Flujo

Diagrama de flujo para PS 4.8

▶️ Prueba y Resultados

Resultado de ejecutar --select-class TestBusquedaSecuencialOrdenada en la terminal.

PS C:\Users\...\Ejercicios> java -jar lib\junit-platform-console-standalone-1.9.3.jar -cp "src;tests" --select-class TestBusquedaSecuencialOrdenada

Thanks for using JUnit! Support its development at https://junit.org/sponsoring

.
+-- JUnit Jupiter [OK]
| '-- TestBusquedaSecuencialOrdenada [OK]
|   +-- testNoEncontrado_Intermedio() [OK]
|   +-- testEncontradoAlInicio() [OK]
|   +-- testNoEncontrado_MenorQueTodos() [OK]
|   +-- testEncontradoAlFinal() [OK]
|   +-- testNoEncontrado_MayorQueTodos() [OK]
|   '-- testEncontradoEnMedio() [OK]
'-- JUnit Platform Suite [OK]

Test run finished after 95 ms
[         3 containers found      ]
[         0 containers skipped    ]
[         3 containers started    ]
[         0 containers aborted    ]
[         3 containers successful ]
[         0 containers failed     ]
[         6 tests found           ]
[         0 tests skipped         ]
[         6 tests started         ]
[         0 tests aborted         ]
[         6 tests successful      ]
[         0 tests failed          ]
← Volver al Inicio