From cd0272acdb6d91f43441da7e2ad45317bb6dacd6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dar=C3=ADo=20Clavijo?= <clavijodario@gmail.com>
Date: Sat, 10 Feb 2024 01:44:36 -0300
Subject: [PATCH] Update logsearch.py: binary_search correct way

---
 logsearch.py | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/logsearch.py b/logsearch.py
index 043531a..09f6686 100644
--- a/logsearch.py
+++ b/logsearch.py
@@ -29,23 +29,22 @@ def search(text, pos):
 count = 0
 
 # logarithm search
-def seeklog(A, key, imin, imax):
+def binary_search(A, key, low, high):
     global count
     count += 1
-
     if len(A) > 0:
-        imid = (imax + imin) / 2
-        if A[imid] > key:
-            return seeklog(A, key, imin, imid - 1)
-        elif A[imid] < key:
-            return seeklog(A, key, imid + 1, imax)
+        mid = low + ((high - low) >> 1);
+        if A[mid] > key:
+            return binary_search(A, key, low, mid - 1)
+        elif A[mid] < key:
+            return binary_search(A, key, mid + 1, high)
         else:
-            return imid
+            return mid
 
 
 def test():
     tmp = list(range(1024 * 1024 * 20))
-    print("res=", seeklog(tmp, 1337, 0, len(tmp)))
+    print("res=", binary_search(tmp, 1337, 0, len(tmp)))
     print("count=", count)