首页 > 编程语言 > 详细

算法分析——二分查找法

时间:2021-08-04 16:00:10      阅读:11      评论:0      收藏:0      [点我收藏+]

二分查找法:

  前提条件:

    数组升序或降序;  

 

  方法:

    设置左右指针,以及一个pivot指针。每次判断pivot指针所指的数据与target是否相同,相同则返回pivot指针。

    如果不相同,判断target与nums[pivot]大小;如果target>nums[pivot],left = pivot + 1;否则 right = pivot - 1;

  例题:

    给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target  ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,不存在返回-1。

 1 class Solution {
 2   public int search(int[] nums, int target) {
 3     int pivot, left = 0, right = nums.length - 1;
 4     while (left <= right) {
 5       pivot = left + (right - left) / 2;
 6       if (nums[pivot] == target) return pivot;
 7       if (target < nums[pivot]) right = pivot - 1;
 8       else left = pivot + 1;
 9     }
10     return -1;
11   }
12 }

 

算法分析——二分查找法

原文:https://www.cnblogs.com/iscanghai/p/15098178.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!