二分仅限于数组没有相同元素的时候,如果有相同元素只能遍历数组。
二分查找算法思想:又称为 折半查找,二分查找适合对已经排序好的数据集合进行查找。假设有一升序的数据集合,先找出升序集合中最中间的元素,将数据集合划分为两个子集,将最中间的元素和关键字key进行比较,如果等于key则返回;如果大于关键字key,则在前一个数据集合中查找;否则在后一个子集中查找,直到找到为止;如果没找到则返回-1。
思路:
1、先定义两个下标 , left = 0 , right = arr.length -1;
2、因为我们也不知道要循环多少次,定义一个while循环,终止条件为right>left
3、因为是二分查找,定义一个mid = left + (right - left)/2; //;防止数据过大溢出
4、定义三个if语句,如果 target == arr[mid], return mid;
二分法
最新推荐文章于 2024-10-09 22:28:58 发布