美文网首页
二分查找的两种实现 by Python

二分查找的两种实现 by Python

作者: 慧鑫coming | 来源:发表于2019-02-03 22:09 被阅读0次

时间复杂度:O(logn)
二分查找应用场景的局限性:
1.二分查找依赖的是顺序表结构,简单的说就是数组;
2.二分查找针对的是有序数据;
3.数据量太小,不适合二分查找,数据量大时;
4.数据量太大,不适合使用二分查找,二分查找底层依赖数组,需要连续的内存空间,太大的话不容易找到;
5.如果数据之间的比较操作非常耗时,不管数据量大小,都推荐使用二分查找。

简单的二分查找场景:有序数组不存在重复元素
python 实现(非递归实现):

class Solution:
    def bsearch(self, nums, val):
        """
        :type nums: List[int]
        :type val: int
        :rtype: int
        """
        low = 0
        high = len(nums) - 1
        while low <= high:
            mid = low + ((high - low) >> 1)
            if nums[mid] == val:
                return mid
            if nums[mid] < val:
                low = mid + 1
            elif nums[mid] > val:
                high = mid - 1
        return -1

python 实现(递归实现):

class Solution:
    def bsearch(self, nums, low, high, val):
        """
        :type nums: List[int]
        :type low: int
        :type high: int
        :type val: int
        """
        if low > high:
            return -1
        mid = low + ((high-low) >> 1)
        if nums[mid] == val:
            return mid
        if nums[mid] > val:
            high = mid - 1
        elif nums[mid] < val:
            low = mid + 1
        return self.bsearch(nums, low, high, val)

相关文章

  • 算法之二分查找

    二分查找 二分查找是著名、高效并有应用广泛的查找算法。 二分常规实现 1.循环实现 下面我用python语言实现循...

  • 算法之二分查找

    排序算法 二分查找 用于有序元素列表的查找性能: Python实现: C#实现

  • Python实现二分法

    Python实现二分查找 为什么需要二分查找 如果查找1-100内任意一个数字?顺序查找(简单查找)从1开始或者1...

  • 二分查找算法--Python语言描述

    当列表的数据是有序的情况下, 使用二分查找算法是非常高效的, 以下使用两种方式实现了二分查找。 二分查找的一般算法...

  • 简单算法

    冒泡排序: while 实现的二分查找: 递归实现二分查找:

  • 算法 -- 二分查找

    二分查找有两种实现:通过递归或循环 二分查找的前提是先要保证数组有序 递归 循环 github 完整代码 -- b...

  • 二分查找法(Python)

    在 Python 中分别用循环和递归两种方式来实现二分查找法 本文的最新版本位于:https://github.c...

  • 二分查找的两种实现 by Python

    时间复杂度:O(logn)二分查找应用场景的局限性:1.二分查找依赖的是顺序表结构,简单的说就是数组;2.二分查找...

  • 分治算法(swift二分法排序递归实现)

    二分查找 1、二分查找(Binary Search) 2、二分查找的基本思想 swift算法实现

  • 二分查找

    网上找到的图片便于理解 二分查找递归实现与循环实现代码: /** 二分查找 1.二分查找又称折半查找,它是一种效率...

网友评论

      本文标题:二分查找的两种实现 by Python

      本文链接:https://www.haomeiwen.com/subject/pqlusqtx.html