📢 Too many exams? Don’t know which one suits you best? Book Your Free Expert 👉 call Now!


    Question

    In a Ternary Search algorithm, the array is divided into

    three parts. Complete the calculation for mid1 and mid2. def ternary_search(arr, target):     low = 0     high = len(arr) - 1     while low arr[mid2]:             low = mid2 + 1         else:             low = mid1 + 1             high = mid2 - 1     return -1
    A mid1 = low + (high - low) / 3, mid2 = high - (high - low) / 3 Correct Answer Incorrect Answer
    B mid1 = (low + high) / 3, mid2 = 2 * (low + high) / 3 Correct Answer Incorrect Answer
    C mid1 = low + (high - low) // 2, mid2 = high - (high - low) // 2 Correct Answer Incorrect Answer
    D mid1 = low + (high - low) // 4, mid2 = high - (high - low) // 4 Correct Answer Incorrect Answer
    E mid1 = (low + high) // 3, mid2 = (low + high) * 2 // 3 Correct Answer Incorrect Answer

    Solution

    Correct Answer: A (Integer division // is typically used in Python, but the mathematical expression is (high - low) / 3 for the segment length.) • Code Analysis: o The goal is to divide the range [low, high] into three roughly equal parts. o mid1 should be at approximately one-third of the way from low. o mid2 should be at approximately two-thirds of the way from low, or one-third of the way from high (working backward). • Explanation of Correct Answer (A): mid1 = low + (high - low) // 3, mid2 = high - (high - low) // 3 o high - low gives the length of the current search interval. o (high - low) // 3 calculates approximately one-third of this length using integer division. o mid1 = low + (high - low) // 3: This correctly places mid1 one-third of the way from low. o mid2 = high - (high - low) // 3: This correctly places mid2 one-third of the way back from high, effectively making it two-thirds of the way from low. This method avoids potential overflow issues that (low + high) * 2 // 3 might have with very large low and high values, and ensures mid1 and mid2 are distinct and within the bounds.

    Practice Next
    ask-question