二分查找算法(关键词:查找算法/二分法/二分查找算法/)

本文详细介绍了二分查找算法的实现与测试,并探讨了使用二分查找法求解平方根的细节,包括代码优化和限制条件。同时,提到了牛顿迭代法求平方根,但表示该部分内容较难理解。
摘要由CSDN通过智能技术生成

二分查找算法

实现

def bi_search(nums, target):
        low = 0
        high = len(nums)-1

        while low <= high:
                mid = (low+high)//2

                if target == nums[mid]:
                        return mid
                elif target < nums[mid]:
                        high = mid-1
                else:
                        low = mid+1

        return None

测试

def test():
        nums0 = [1,2,4,6,7,8,9,11,13,15,16,17,20,21,22,26,27,30]

        assert bi_search(nums0, target=1) == 0
        assert bi_search(nums0, target=6) == 3
        assert bi_search(nums0, target=14)== None

        print('All testcases pass!')


if __name__ == '__main__':
        test()

结果:

$ python3 t.py
All testcases pass!
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值