Starts implementing binary search algorithm

This commit is contained in:
Julien Lengrand-Lambert
2013-06-28 17:40:54 +02:00
commit 53cb6af0d2
3 changed files with 42 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
*.pyc

View File

@@ -0,0 +1,21 @@
"""
Binary search implementation
@jlengrand
2013/07
Binary search solves the problem [of searching within a pre-sorted array] by
keeping track of a range within the array in which T [i.e. the sought value]
must be if it is anywhere in the array. Initially, the range is the entire
array.
The range is shrunk by comparing its middle element to T and discarding half the
range. The process continues until T is discovered in the array, or until the
range in which it must lie is known to be empty. In an N-element table,
the search uses roughly log(2) N comparisons.
"""
def bin_search(arr, t):
"""
Performs binary search on the input array.
Searches for t in arr, using a binary search.
Returns t index in arr if it is found, null otherwise
"""

View File

@@ -0,0 +1,20 @@
"""
Unit tests for the binary search algorithm
@jlengrand
2013/07
"""
from bin_search import bin_search
import unittest
class test_bin_search(unittest.TestCase):
def setUp(self):
arr1 = [1, 2, 3, 4, 5]
def test_shuffle(self):
self.assertTrue(1, 1)
if __name__ == '__main__':
unittest.main()