给定一个数组,使用二分查找法,查找给定数的索引
输入:2008
输出:8
代码如下:
package com.me.test;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int[] arr = {2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019};
Scanner in = new Scanner(System.in);
int num = in.nextInt();
int left = 0;
int right = arr.length-1;
int mid = (left+right)/2;
if(num<2000 || num>2019){
return;
}
while(num!=arr[mid]){
if(num<arr[mid]){
right=mid-1;
mid=(left+right)/2;
}else{
left=mid+1;
mid=(left+right)/2;
}
}
System.out.println(mid);
}
}