-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbinarySearch.py
46 lines (35 loc) · 1 KB
/
binarySearch.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
def main():
lst = [2, 4, 7, 10, 11, 45, 50, 59, 60, 66, 69, 70, 79]
number = eval(input("Enter search parameter: "))
location = binary(number, lst)
print(location)
##def binary(number, lst):
## low = 0
## high = len(lst) - 1
## middle = (high + low) // 2
## if number < lst[middle]:
## high = middle - 1
## for i in range(low, high):
## if number == lst[i]:
## print("Number is in: ", i)
##
##
## if number > lst[middle]:
## low = middle
## high = len(lst)
## for i in range(low, high):
## if number == lst[i]:
## print("Number is in: ", i)
def binary(number, lst):
low = 0
high = len(lst) - 1
while high >= low:
middle = (high + low) // 2
if number < lst[middle]:
high = middle - 1
elif number == lst[middle]:
return middle
else:
low = middle + 1
return -low - 1
main()