Binary Search
چهارشنبه, ۴ مهر ۱۴۰۳، ۱۰:۲۳ ق.ظ
Binary search is a more efficient searching algorithm suitable for sorted lists. It repeatedly divides the search interval in half until the target value is found.
Steps:
- Start with the entire sorted list.
- Compute the middle element of the list.
- If the middle element is equal to the target value, return its index.
- If the middle element is less than the target value, search in the right half of the list.
- If the middle element is greater than the target value, search in the left half of the list.
- Repeat steps 2-5 until the target value is found or the search interval is empty.
def binary_search(arr, target, low, high):
    """
    Perform binary search recursively to find the target value in the given sorted list.
    Parameters:
        arr (list): The sorted list to be searched.
        target: The value to be searched for.
        low (int): The lower index of the search interval.
        high (int): The upper index of the search interval.
    Returns:
        int: The index of the target value if found, otherwise -1.
    """
    if low <= high:
        mid = (low + high) // 2
        if arr[mid] == target:
            return mid
        elif arr[mid] < target:
            return binary_search(arr, target, mid + 1, high)
        else:
            return binary_search(arr, target, low, mid - 1)
    else:
        return -1
# Example usage:
arr = [2, 3, 4, 10, 40]
target = 10
result = binary_search(sorted(arr), target, 0, len(arr) - 1)
if result != -1:
    print(f"Binary Search: Element found at index {result}")
else:
    print("Binary Search: Element not found")
- ۰۳/۰۷/۰۴
