Búsqueda binaria en Python
Harshit Jindal
30 enero 2023
Nota
Si desea comprender la búsqueda binaria en detalle, consulte el artículo algoritmo de búsqueda binaria.
Algoritmo de búsqueda binaria
Supongamos que tenemos un array sin clasificar A[]
que contiene n
elementos, y queremos encontrar un elemento X
.
-
Establece
lo
como0
yhi
comon - 1
. -
Mientras que
lo
<hi
, establezcamid
=lo + (hi - lo)/2
.- Si
A[mid]
==X
, hemos encontrado que el elemento devuelve el índicemid
. - Si
A[mid]
<X
, descarte la mitad izquierda de los elementos y establezcalo
comomid+1
. - De lo contrario, si
A[mid]
>X
, descarte la mitad derecha de los elementos y establezcahi
comomid-1
.
- Si
-
El elemento no se encuentra, así que devuelve
-1
.
Programa Python para búsqueda binaria
def binary_search(arr, x, n):
lo = 0
hi = n - 1
mid = 0
while lo <= hi:
mid = (hi + lo) // 2
if arr[mid] < x:
lo = mid + 1
elif arr[mid] > x:
hi = mid - 1
else:
return mid
return -1
arr = [2, 3, 4, 1, 5]
x = 4
n = len(arr)
result = binary_search(arr, x, n)
if result == -1:
print("Element not found")
else:
print("Element is present at index", str(result))
Producción :
Element is present at index 2
Autor: Harshit Jindal
Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.
LinkedIn