01.binary search

Write a Python program for binary search.

In computer science, binary search, also known as half-interval search, is a search algorithm that finds the position of a target value within a sorted array. Binary search compares the target value to the middle element of the array. If they are not equal, the half in which the target cannot lie is eliminated and the search continues on the remaining half, again taking the middle element to compare to the target value, and repeating this until the target value is found. If the search ends with the remaining half being empty, the target is not in the array.

def binary_search(item_list, item):
    first = 0
    last = len(item_list)-1
    found = False

    while (first <= last and not found):
        mid = (first+last)//2
        if item_list[mid] == item:
            found = True
        else:
            if item < item_list[mid]:
                last = mid - 1
            else:
                first = mid + 1
    return found
mylist = [2,3,1,12,34]
mylist
[2, 3, 1, 12, 34]
mylist.sort()
mylist
[1, 2, 3, 12, 34]
print(binary_search(mylist, 12))
True

print(binary_search(mylist, 13))
False

## Giving unsorted array
def binary (item_list, item):
    item_list.sort()
    print(item_list)
    first = 0
    last = len(item_list)-1
    found = False

    while (first <= last and not found):
        mid = (first+last)//2
        if item_list[mid] == item:
            found = True
        else:
            if item < item_list[mid]:
                last = mid - 1
            else:
                first = mid + 1
    return found 
mylist = [2,3,1,12,34]
print(binary(mylist, 12))
[1, 2, 3, 12, 34]
True

print(binary(mylist, 13))
[1, 2, 3, 12, 34]
False