mirror of
https://github.com/jlengrand/Coding4Interviews.git
synced 2026-03-10 08:11:24 +00:00
Starts implementing binary search algorithm
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
*.pyc
|
||||
21
00_binary_search/bin_search.py
Normal file
21
00_binary_search/bin_search.py
Normal 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
|
||||
"""
|
||||
20
00_binary_search/bin_search_test.py
Normal file
20
00_binary_search/bin_search_test.py
Normal 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()
|
||||
Reference in New Issue
Block a user