二分查找

题目解析:在一个有序数组中找一个 target,找到返回其下标,找不到返回 -1。 算法原理:
- 暴力解法:遍历整个数组进行查找,时间复杂度 O(N)。
- 朴素二分算法:数组具有'二段性',可以根据中间值将数组分为两部分并舍弃一半,使用二分算法。



class Solution {
public int search(int[] nums, int target) {
// 使用 left 和 right 两个变量在左右两边
// 使用 mid 来表示其中间的下标,因为其有序
// 这样我们每次比较一次其就会干掉一半的数,这个效率是很高的
int left = 0;
int right = nums.length - 1;
while (left <= right) {
int mid = left + (right - left) / ;
(target > nums[mid]) {
left = mid + ;
} (target < nums[mid]) {
right = mid - ;
} {
mid;
}
}
-;
}
}





















