e54648d47f
Instead of having exercises in their own separate section, they are now part of the main topics sections. This should make the learning process easier to follow where users have both exercises and questions in the same place. In addition, added a couple of new questions & exercises and modified existing scripts accordingly.
28 lines
733 B
Python
28 lines
733 B
Python
#!/usr/bin/env python
|
|
|
|
import random
|
|
|
|
|
|
def binary_search(arr, lb, ub, target):
|
|
"""
|
|
A Binary Search Example which has O(log n) time complexity.
|
|
"""
|
|
if lb <= ub:
|
|
mid = ub + lb // 2
|
|
if arr[mid] == target:
|
|
return mid
|
|
elif arr[mid] < target:
|
|
return binary_search(arr, mid + 1, ub, target)
|
|
else:
|
|
return binary_search(arr, lb, mid - 1, target)
|
|
else:
|
|
return -1
|
|
|
|
|
|
if __name__ == '__main__':
|
|
rand_num_li = sorted([random.randint(1, 50) for _ in range(10)])
|
|
target = random.randint(1, 50)
|
|
print("List: {}\nTarget: {}\nIndex: {}".format(
|
|
rand_num_li, target,
|
|
binary_search(rand_num_li, 0, len(rand_num_li) - 1, target)))
|