Пример #1
0
    def test_binary_search(self):
        sorted_list = [1, 3, 5, 7, 9]

        index = binary_search(sorted_list, 1)
        self.assertEqual(0, index)

        index = binary_search(sorted_list, 7)
        self.assertEqual(3, index)

        index = binary_search(sorted_list, 10)
        self.assertEqual(None, index)
Пример #2
0
def count_n_by_x(x0, v0, a, xn, k=friction_factor()):
    '''
    считаем количество тиков при заданных x0 v0 xn
    сложность log(количество тиков)
    '''
    def f(n):
        return xn - count_xn(x0, v0, a, n, k)

    # Это не совсем точно, может и доедем еще на v0
    if a * (xn - x0) < 0:
        return None

    return algorithm.binary_search(0, 8000, f, 0.01)
Пример #3
0
def test_binary_search():
    items = [1, 2, 3, 4, 5, 6, 8, 9, 10]
    assert binary_search(items, 0, len(items), 1) == 0
    assert binary_search(items, 0, len(items), 8) == 6
    assert binary_search(items, 0, len(items), 7) == -1

    a = list(range(10))
    for i in a:
        assert binary_search(a, 0, len(a), i) == i

    assert binary_search(a, 0, len(a), -1) == -1
    assert binary_search(a, 0, len(a), 10) == -1
def test():
    L = [1, 4, 7, 9, 10, 20, 25, 34, 90, 10]
    assert binary_search(L, 25) == 6
    assert binary_search(L, 1) == 0  #===> worst case
    assert binary_search(L, 123123) == -1
Пример #5
0
from algorithm import binary_search

haystack = [4, 8, 15, 16, 23, 42]
print(binary_search(haystack, 3))
print(binary_search(haystack, 16))
Пример #6
0
 def test_not_found(self):
     result = binary_search(self.arr, 0, len(self.arr) - 1, 11)
     self.assertEqual(result, -1)
     result = binary_search([], 0, 0 - 1, 1)
     self.assertEqual(result, -1)
Пример #7
0
 def test_search(self, num):
     result = binary_search(self.arr, 0, len(self.arr) - 1, num)
     self.assertEqual(result, self.arr.index(num))
    def test_binary_search(self):
        def f(x):
            return x ** 3

        eps = 1e-6
        self.assertAlmostEquals(algorithm.binary_search(-3, 3, f, eps), 0., delta=1e-2)