-
-
Save KingScooty/1355403 to your computer and use it in GitHub Desktop.
Binary Search Algorithm
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* @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 | |
*/ | |
var binarySearch = function (data, find, start, end) { | |
var mid = start + (end - start) / 2; | |
if (start > end) { | |
return -1; | |
} else if (data[mid] == find) { // Found it | |
return mid; | |
} else if (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); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 # find mid point between start and end | |
if start > end: | |
return -1 | |
elif data[mid] == find: # found it | |
return mid | |
elif data[mid] > find: # mid index is greater than find, search lower half | |
return binarySearch(data, find, start, mid - 1) | |
else: # mid index 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