🥇 Funciones Recursivas, Búsqueda Binaria (Binary Search)

🍿 ¿Cómo implementar una búsqueda binaria de forma recursiva en Go?

Ya hemos visto la aplicación de la búsqueda binaria utilizando un loop for, esto también lo podemos replicar mediante una función recursiva.

Para implementar una busqueda binaria mediante una función recursiva utilizamos el siguiente algoritmo en Go.

package main

import (
	"fmt"
	"math"
)

// @TODO
func BusquedaBinaria(lista []int, item int) int {
}

func main() {

	nums := []int{100, 200, 300, 400, 500, 600}

	fmt.Println(100, BusquedaBinaria(nums, 100)) // -> 0
	fmt.Println(200, BusquedaBinaria(nums, 200)) // -> 1
	fmt.Println(300, BusquedaBinaria(nums, 300)) // -> 2
	fmt.Println(400, BusquedaBinaria(nums, 400)) // -> 3
	fmt.Println(500, BusquedaBinaria(nums, 500)) // -> 4
	fmt.Println(600, BusquedaBinaria(nums, 600)) // -> 5
	fmt.Println(700, BusquedaBinaria(nums, 700)) // -> 6

}

El enfoque de la solución de la búsqueda binaria con una función recursiva es el mismo, utilizar la estrategia de dividir y vencer. Dividimos el slice en 2 y continuamos el mismo proceso una y otra vez hasta encontrar el valor requerido.