快速查找:二分查找法
有序数字:3,5,8,10,14,18,19,20,34,58
package com.interview;
public class BinarySearch {
public static void main(String[] args) {
//查找n
int[] ints = {1,2,3,6,8,9,10,14,15,21,34,36,43,446,4634};
int num = 14;
System.out.println(binarySearch(ints,num));
}
static int binarySearch(int[] ints,int num) {
int s = 0;
int e = ints.length-1;
int m = 0;
while(s<=e) {
m=(s+e)/2;
if(num==ints[m]) {
System.out.println("找到位置:"+m+" 值为"+ints[m]);
return m;
}else if(num<ints[m]) {
e=m-1;
}else {
s=m+1;
}
}
return -1;
}
}