Python实现二分查找算法
Posted 算法与编程之美
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python实现二分查找算法相关的知识,希望对你有一定的参考价值。
二分查找是基础算法的一种,有利于我们提高查找效率。
问题
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
示列1:
输入:nums = [-1, 0, 3, 5, 9, 12, 54, 60, 100], target = 9
输出:4
示例2:
输入:nums = [-1, 0, 3, 5, 12, 54, 60, 100], target = 9
输出:-1
方法
应为该数组为升序数组。首先,设l,r分别为该数组第一个下标和最后一个,在找到中间值的下标mid = (l + r)// 2,最后将其进行比较,最后找到要找的target。
def f(nums): l, r = 0, len(nums) - 1 while l < r: mid = (l + r) // 2 if nums[mid] >= target: r = mid else: l = mid + 1 return r |
结语
这是最典型的二分查找的运用,二分查找对于类似问题可以提高效率,但二分查找只能用于有序排列的数组,不能对无序数组进行操作。
以上是关于Python实现二分查找算法的主要内容,如果未能解决你的问题,请参考以下文章