Por favor, consulte el algoritmo en wiki: –
Algoritmo de búsqueda binaria – Wikipedia
El algoritmo dice, regresa a la mitad .
- Analizador de programación: ¿por qué devolvemos los datos restantes (no consumidos) mientras escribimos un analizador?
- ¿Por qué el método Arrays.sort en Java implementa timsort en lugar de contar?
- ¿Cuáles son algunos algoritmos que usamos diariamente que tienen complejidades [matemáticas] O (n), O (n ^ 2), [/ matemáticas] y [matemáticas] O (\ log n) [/ matemáticas]?
- Cómo convertir una cadena en una matriz de caracteres
- Cómo dibujar un contorno vectorial en una matriz de cuadrícula binaria
Entonces, ¿por qué volver (mid + 1) ?
No es el algoritmo sino la diferencia en la convención que seguimos en el mundo humano versus el mundo digital.
En C, un índice de matriz comienza desde 0.
Considere seguir:
Por ejemplo: – buscar 30 en [10, 20, 30, 40, 50]
Si le preguntas a un humano, él / ella responderá – 3ra posición (como comenzamos desde la 1ra).
Si le pregunta a un programa en C, devolverá la posición 2 (ya que el índice comienza desde 0).
Depende de lo que quieras devolver: –
- Índice del número en la matriz -> return mid
- Posición del número -> return mid + 1
Gracias. A2A