Computer Science

Write a program that takes as input a list of 10 integers and a key value and applies binary search to find whether the key is present in the list or not. If the key is present it should display the position of the key in the list otherwise it should print an appropriate message. Run the program for at least 3 different key values and note the results.

Python Searching

2 Likes

Answer

def binarysearch(list1, key):
    first = 0
    last = len(list1) - 1
    
    while first <= last:
        mid = (first + last) // 2
        
        if list1[mid] == key:
            return mid
        elif key < list1[mid]:
            last = mid - 1
        else:
            first = mid + 1
    
    return -1

list1 = eval(input("Enter the list: "))

for i in range(3):
    key = int(input("Enter the key to be searched: "))
    pos = binarysearch(list1, key)
    if pos == -1:
        print(key, "not found")
    else:
        print(key, "found at index", pos)
Output
Enter the list: [1, 33, 55, -77, 45, 23, -56, 23, 46, -89]
Enter the key to be searched: 33
33 found at index 1
Enter the key to be searched: 45
45 found at index 4
Enter the key to be searched: 99
99 not found

Answered By

2 Likes


Related Questions