w3resource

Python Bisect: Find the index position of the last occurrence of a given number in a sorted list using Binary Search


6. Last Occurrence with Binary Search

Write a Python program to find the index position of the last occurrence of a given number in a sorted list using Binary Search (bisect).

Sample Solution:

Python Code:

from bisect import bisect_right   
def BinarySearch(a, x): 
    i = bisect_right(a, x) 
    if i != len(a)+1 and a[i-1] == x: 
        return (i-1) 
    else: 
        return -1 
nums = [1, 2, 3, 4, 8, 8, 10, 12] 
x = 8
num_position   = BinarySearch(nums, x) 
if num_position == -1: 
    print("not presetn!") 
else: 
    print("Last occurrence of", x, "is present at", num_position)

Sample Output:

Last occurrence of 8 is present at 5

Flowchart:

Flowchart: Find the index position of the last occurrence of a given number in a sorted list using Binary Search.

For more Practice: Solve these Related Problems:

  • Write a Python program to find the index of the last occurrence of a target number in a sorted list using bisect_right and subtracting one.
  • Write a Python script to implement a binary search that returns the last occurrence index of a duplicate target value in a sorted array.
  • Write a Python program that uses bisect_right to identify the rightmost index of a target and then prints the index of its last occurrence.
  • Write a Python function to locate the final occurrence of a given number in a sorted list and handle cases where the target is absent.

Python Code Editor:

Contribute your code and comments through Disqus.

Previous: Write a Python program to find the index position of the largest value smaller than a given number in a sorted list using Binary Search (bisect).

Next: Write a Python program to find three integers which gives the sum of zero in a given array of integers using Binary Search (bisect).

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.