first commit: code for chapter 1
This commit is contained in:
28
01_introduction_to_algorithms/python/01_binary_search.py
Normal file
28
01_introduction_to_algorithms/python/01_binary_search.py
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
def binary_search(list, item):
|
||||||
|
# low and high keep track of which part of the list you'll search in.
|
||||||
|
low = 0
|
||||||
|
high = len(list) - 1
|
||||||
|
|
||||||
|
# While you haven't narrowed it down to one element ...
|
||||||
|
while low <= high:
|
||||||
|
# ... check the middle element
|
||||||
|
mid = (low + high) // 2
|
||||||
|
guess = list[mid]
|
||||||
|
# Found the item.
|
||||||
|
if guess == item:
|
||||||
|
return mid
|
||||||
|
# The guess was too high.
|
||||||
|
if guess > item:
|
||||||
|
high = mid - 1
|
||||||
|
# The guess was too low.
|
||||||
|
else:
|
||||||
|
low = mid + 1
|
||||||
|
|
||||||
|
# Item doesn't exist
|
||||||
|
return None
|
||||||
|
|
||||||
|
my_list = [1, 3, 5, 7, 9]
|
||||||
|
print binary_search(my_list, 3) # => 1
|
||||||
|
|
||||||
|
# 'None' means nil in Python. We use to indicate that the item wasn't found.
|
||||||
|
print binary_search(my_list, -1) # => None
|
||||||
8
README.md
Normal file
8
README.md
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
# Grokking Algorithms
|
||||||
|
|
||||||
|
This is the code in my book [Grokking Algorithms](https://www.manning.com/bhargava).
|
||||||
|
|
||||||
|
# Contributing
|
||||||
|
|
||||||
|
- The examples in this book are in Python, but I'd like to get examples in Ruby, Javascript, C, and other languages too. Please add examples in other languages!
|
||||||
|
- I'm pretty responsive to PRs. That is the quickest way to contribute to this repo.
|
||||||
Reference in New Issue
Block a user