二分查找
也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。
示例
public class ArrayTest3 {
public static void main(String[] args) {
//创建数组
int[] array = new int[]{-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9};
//设置查找数据
int dest = -3;
//首元素//尾元素
int head = 0;
int end = array.length -1;
//设置标记,判断是否找到
boolean Flag = true;
//查找
while(head <= end){
int middle = (head + end)/2;
if(dest == array[middle]){
Flag = false;
System.out.println("找到了,位置在:" + middle);
break;
}else if(dest < array[middle]){
end = middle - 1;
}else{
head = middle + 1;
}
}
if(Flag){
System.out.println("抱歉,没有找到!");
}
}
}