Skip to content

Commit 9800000

Browse files
committed
solved: practicing binary_search 1X -@iamserda
1 parent b9a3e2c commit 9800000

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed
Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,22 @@
1-
import math
2-
1+
import math, random
32

43
class Solution:
54
def binary_search(self, arr, val):
65
left = 0
76
right = len(arr) - 1
87
while left <= right:
9-
mid = int(math.ceil((right - left) // 2))
10-
if arr[mid] == val:
11-
return mid
8+
mid = (right + left) // 2
129
if val > arr[mid]:
13-
14-
10+
left = mid + 1
11+
elif val < arr[mid]:
12+
right = mid - 1
13+
else:
14+
return mid
15+
return -1
1516

16-
arr = [i for i in range(1, 101)]
17+
arr = [i for i in range(-100, 100)]
1718
sol = Solution()
18-
sol.binary_search(arr, val)
19+
index = sol.binary_search(arr, 10)
20+
assert sol.binary_search(arr, val=10) != -1 # Found
21+
index = sol.binary_search(arr, 400)
22+
assert sol.binary_search(arr, val=400) == -1 # Not Found

0 commit comments

Comments
 (0)