查找程序:
public class chazhao {//缺点性能较低
public static void main(String[] args) {
// TODO Auto-generated method stub
int data=3;
int [] numbers={1,2,4,5,3};
for(int number:numbers){
if(number==data){
System.out.println("存在");
return;
}
}
System.out.println("No");
}
}
二分法查找:
搜索数据与有序数组(比如升序)中间元素比较以确定在中间元素左边还是右边,如果在右边,则调整最小搜索索引值,然后进入下次循环;如果在左边,则调整最大搜索索引值,然后进入下次循环;如果相等则当前位置就是查找数据所在位置,停止循环;
public class zhaban {//z折半查找是相对来说最快的一种查找方式
public static void main(String[] args) {
int data=6;
int [] numbers={1,2,3,4,5}; //下标0-4
int low=0;
int a=0;
int high=numbers.length-1;
while(low<=high){
System.out.println("............");
int middle=(low+high)/2;
if(data==numbers[middle]){
System.out.println("Yes");
a=1;
break;
}else if(data>numbers[middle]){
low=middle+1;
}else if(data<numbers[middle]){
high=middle-1;
}
}
if(a==0){
System.out.println("No");
}
}
}