第26615题
有关下列Python二分查找代码的说法,正确的是?
def bSearch(lst, val):
    def __bSearch(lst, Low, High, queryVal):
        if Low > High:
            return -1

        midIdx = (Low + High) // 2
        midVal = lst[midIdx]

        if queryVal == midVal:
            return midIdx
        elif queryVal < midVal:
            return __bSearch(lst, Low, midIdx - 1, queryVal)
        else:
            return __bSearch(lst, midIdx + 1, High, queryVal)

    return __bSearch(lst, 0, len(lst), val)

lst = list(range(10))
print(bSearch(lst,3))
A

代码采用二分法查找,仅对有序list有效,不适用于set、dict等

B

在函数内定义函数,存在多次调用多次定义,因此存在错误

C

第16行代码__bSearch()最后一个参数val应为queryVal

D

第16行代码应为return __bSearch