Skip to content

Instantly share code, notes, and snippets.

@maraca
Created February 20, 2012 07:16
Show Gist options
  • Select an option

  • Save maraca/1868237 to your computer and use it in GitHub Desktop.

Select an option

Save maraca/1868237 to your computer and use it in GitHub Desktop.
binary search
#!/usr/bin/python
def search(number_list, n):
maxi = len(number_list)
mini = 0
pin = len(number_list) / 2
while maxi - mini != 1:
# print "Pin: %d, Min: %d, Max: %d" % (pin, mini, maxi)
if number_list[pin] == n:
return pin
elif number_list[pin] < n:
# look on the right
mini = pin
elif number_list[pin] > n:
# look on the left
maxi = pin
pin = ((maxi - mini) / 2) + mini
return None
if __name__ == "__main__":
a = [1, 3, 4,5 ,6 ,7,8,24, 34, 36, 45, 56 ,67, 78,79,81]
b = [-10, -8, -2, 0, 2, 8, 24, 341]
print search(a, 1)
print search(a, 81)
print search(a, 100)
print search(a, 24)
print search(a, 35)
print 'negative'
print search(b, -12)
print search(b, -10)
print search(b, 0)
print search(b, 24)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment