二分查找是基础算法的一种,有利于我们提高查找效率。
问题
给定一个 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。
结语
这是最典型的二分查找的运用,二分查找对于类似问题可以提高效率,但二分查找只能用于有序排列的数组,不能对无序数组进行操作。