Skip to content

Instantly share code, notes, and snippets.

@KingScooty
Forked from martinogden/binary_search.js
Created November 10, 2011 16:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save KingScooty/1355278 to your computer and use it in GitHub Desktop.
Save KingScooty/1355278 to your computer and use it in GitHub Desktop.
Binary Search Algorithm
def binarySearch(data, find, start, end):
"""
Search for a integer in a list of integers using a simple `Binary Search` algorithm
:param list data: list of integers sorted ascending
:param int find: integer to search for
:param int start: min array index
:param int end: max array index
:return int: index of 'find' or -1 if not found
"""
mid = start + (end - start) / 2
if start > end:
return -1
elif data[mid] == find: # Found it
return mid
elif data[mid] > find: # mid is greater than find, search lower half
return binarySearch(data, find, start, mid - 1)
else: # mid is less than find, search upper half
return binarySearch(data, find, mid + 1, end)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment