Python之二分查找


二分查找

  • 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。
  • 但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。
  • 无序查找使用线性查找,有序查找使用二分查找

代码实现二分查找

  • 在数组中查找val的具体下标:

def binary_search(sorted_array, val):
    if not sorted_array:
        return -1

    beg = 0
    end = len(sorted_array) - 1

    while beg <= end:
        mid = int((beg + end) / 2)  
        if sorted_array[mid] == val:
            return mid
        elif sorted_array[mid] > val:
            end = mid - 1
        else:
            beg = mid + 1
    return -1
    

你可能感兴趣的:(算法和数据结构)