Búsqueda binaria en Go
Divide el rango a la mitad en cada paso; mil elementos toman diez comparaciones.
func binarySearch(items []int, target int) int {
lo, hi := 0, len(items)-1
for lo <= hi {
mid := (lo + hi) / 2
if items[mid] == target {
return mid
}
if items[mid] < target {
lo = mid + 1
} else {
hi = mid - 1
}
}
return -1
}
Palabras clave y builtins usados aquí
elseforfuncifintlenreturn
El intento, en números
- Líneas
- 15
- Caracteres a escribir
- 225
- Tokens
- 77
- Ritmo de tres estrellas
- 90 tpm
Al ritmo de tres estrellas de 90 tokens por minuto, este intento toma unos 51 segundos.
Paso 8 de 9 en Arreglos, slices y mapas; paso 23 de 30 en Fundamentos del lenguaje.