Java轻松入门基础(八)–查找
1.线性查找
String arr[]=new String[] {"a","b","c","d","e","f"};
String dest="c";
boolean isFlag=true;
for(int i=0;i<arr.length;i++){
if(dest.equals(arr[i])) {
System.err.println("找到指定元素,在第"+(i+1)+"个位置");
isFlag=false;
break;
}
}
if(isFlag) {
System.err.println("很遗憾,没有找到指定元素!");
}
2.二分法查找
二分法使用的前提:数组中的元素必须是有序的(从小到大)。
int arr[]=new int[] {-1,0,1,2,3,4,5,6,7,8,9};
int dest=1;
int head=0;
int end=arr.length-1;
boolean isFlag=true;
while(head<=end){
int middle=(head+end)/2;
if(dest==arr[middle]) {
System.err.println("找到指定元素,在第"+(middle+1)+"个位置");
isFlag=false;
break;
}else if(arr[middle]>dest) {
end=middle-1;
}else if(arr[middle]<dest) {
head=middle+1;
}
}
if(isFlag) {
System.err.println("很遗憾,没有找到指定元素!");
}