w3resource
Python Exercises

Python Data Structures and Algorithms: Search for an ordered list

Python Search and Sorting : Exercise-3 with Solution

Write a Python program for binary search for an ordered list.

Sample Solution:-

Python Code:

def Ordered_binary_Search(olist, item):
    
    if len(olist) == 0:
        return False
    else:
        midpoint = len(olist) // 2
        if olist[midpoint] == item:
            return True
        else:
            if item < olist[midpoint]:
                return binarySearch(olist[:midpoint], item)
            else:
                return binarySearch(olist[midpoint+1:], item)

def binarySearch(alist, item):

    first = 0
    last = len(alist) - 1
    found = False

    while first <= last and not found:
        midpoint = (first + last) // 2
        if alist[midpoint] == item:
            found = True
        else:
            if item < alist[midpoint]:
                last = midpoint - 1
            else:
                first = midpoint + 1

    return found

print(Ordered_binary_Search([0, 1, 3, 8, 14, 18, 19, 34, 52], 3))
print(Ordered_binary_Search([0, 1, 3, 8, 14, 18, 19, 34, 52], 17))

Sample Output:

True                                                                                                          
False

Flowchart:

Flowchart: Python Data Structures and Algorithms: Search for an ordered list

Python Code Editor:

Contribute your code and comments through Disqus.

Previous: Write a Python program for sequential search.
Next: Write a Python program to sort a list of elements using the bubble sort algorithm.

What is the difficulty level of this exercise?