Te topaste con un grupo de matemáticos que también son cantautores. Escribieron una canción para cada uno de sus números favoritos y, como puedes imaginar, tienen muchísimos números favoritos (como el 0, el 73 o el 6174).
Tienes curiosidad por escuchar la canción de tu número favorito, pero con tantas canciones entre las que buscar, encontrar la correcta podría tardar un rato. Por suerte, organizaron sus canciones en una lista de reproducción ordenada por el título, que es simplemente el número sobre el que trata la canción.
Te das cuenta de que puedes usar un algoritmo de búsqueda binaria para encontrar rápidamente una canción a partir del título.
Tu tarea es implementar un algoritmo de búsqueda binaria.
Un algoritmo de búsqueda binaria encuentra un elemento en un array dividiéndolo repetidamente por la mitad y conservando solo la mitad que contiene el elemento que buscamos. Nos permite reducir rápidamente las posibles ubicaciones de nuestro elemento hasta que lo encontramos, o hasta que hayamos descartado todas las ubicaciones posibles.
La búsqueda binaria solo funciona cuando el array está ordenado.
El algoritmo funciona así:
Aquí tienes un ejemplo:
Supongamos que buscamos el número 23 en el siguiente array ordenado: [4, 8, 12, 16, 23, 28, 32].
[23, 28, 32].[23].Las instrucciones de arriba están sincronizadas con un repositorio compartido para garantizar la consistencia entre todos los tracks de lenguajes. Este apéndice ofrece aclaraciones adicionales o modifica las instrucciones según sea necesario para alinearlas mejor con los objetivos del track de Clojure.
Para este ejercicio en el track de Clojure, puedes asumir que la entrada es un vector, como indican las pruebas.
Regístrate en Exercism para aprender y dominar Clojure con 12 conceptos105 ejercicios y mentoría humana real, todo gratis.