二分查找

来源:互联网 发布:tensorflow 分布式计算 编辑:程序博客网 时间:2024/06/05 22:58
二分查找找出元素第一次出现的下标位置若未找到 输出-1-(应该出现的位置)
{1,3,5,8} 找7  则输出-4  找10  则输出-5  找0  则输出-1
package test;public class Test {public static void main(String[] args) {int[] nums={1,3,5,8};int n= searchInsert(nums, 0); System.out.println(n);}   public static int searchInsert(int[] nums, int target) {          if (nums == null || nums.length == 0) {              return 0;          }          int start = 0, end = nums.length - 1;          while (start + 1 < end) {              int mid = start + (end - start) / 2;              if (nums[mid] == target) {                  return mid;              } else if (nums[mid] < target) {                  start = mid;              } else {                  end = mid;              }          }          //第一个        if (target <= nums[start]) {              return -(start+1);          }          //中间        if (target <= nums[end]) {              return -(end + 1);          }          //最后一个         return -(end + 2);      }  }

0 0
原创粉丝点击