龙空技术网

算法刷题-二分查找

片刻小哥哥 70

前言:

眼前各位老铁们对“折半查找递归算法伪代码”可能比较关切,咱们都想要学习一些“折半查找递归算法伪代码”的相关资讯。那么小编在网络上搜集了一些关于“折半查找递归算法伪代码””的相关内容,希望看官们能喜欢,朋友们一起来学习一下吧!

【视频地址点击:算法刷题-二分查找】

代码如下:

"""1. 二分查找是有条件的,首先是有序,其次因为二分查找操作的是下标,所以要求是顺序表2. 最优时间复杂度:O(1)3. 最坏时间复杂度:O(logn)"""# def binary_search(nums, data):#     """#     非递归解决二分查找#     :param nums:#     :return:#     """#     n = len(nums)#     first = 0#     last = n - 1#     while first <= last:#         mid = (last + first) // 2#         if nums[mid] > data:#             last = mid - 1#         elif nums[mid] < data:#             first = mid + 1#         else:#             return True#     return Falsedef binary_search(nums, data):    """    递归解决二分查找: nums 是一个有序数组    :param nums:    :return:    """    n = len(nums)    if n < 1:        return False    mid = n // 2    if nums[mid] > data:        return binary_search(nums[:mid], data)    elif nums[mid] < data:        return binary_search(nums[mid+1:], data)    else:        return Trueif __name__ == '__main__':    nums = [1, 4, 6, 8, 10, 20, 25, 30]    if binary_search(nums, 8):        print('ok')

标签: #折半查找递归算法伪代码