#java代码段
##java直接查找法查找数组元素
/*
直接查找法:查询输入的值是否存在,如果存在就输出索引值,不存在就返回-1;
/
import java.util.; //别忘了导入;
class demo5{
public static void main(String[] args) {
int[] arr={4,54,7,3,1,79,68,78};
int i=suoYin(arr);
System.out.println(“你查询的数索引值是:”+i);
}
public static int suoYin(int arr[]){
System.out.println("请输入你要查询的值:");
Scanner scanner=new Scanner(System.in);
int a=scanner.nextInt();
for (int i=0;i<arr.length ;i++ ){
if (arr[i]==a){
return i;
} //此处省略else,如果没找到就继续查找,找到了直接返回,就是停止了循环;
}
return -1;
}
}
##java二分法(折半法)查找数组元素
/*
折半查找法:只适用于有序数组,而且数据量较大时这个方法较好;
当查找的数字不存在,则返回-1;
/
import java.util.;
class demo6 {
public static void main(String[] args) {
int arr[]={1,2,3,4,5,6,7,8,9};
int i=halfSearch(arr);
System.out.println(“你查找的数的索引值是:”+i);
}
//二分法
public static int halfSearch(int arr[]){
System.out.print("请输入你要查找的数字:");
Scanner scanner=new Scanner(System.in);
int a=scanner.nextInt();
//定义三个变量记录查找范围的最大、最小和中间值;
int max=arr.length-1;
int min=0;
int mid=(max+min)/2;
while(true){
if (a>arr[mid]){
min=mid+1;
}
else if (a<arr[mid]){
max=mid-1;
}
else{
return mid; //找到的情况下;
}
mid=(max+min)/2; //由于上面最大值和最小值改变会改变中间值,所以重置mid值;
//查找值不存在的情况下;
if (min>max){
return -1;
}
}
}
}
用于平时自己复习回顾,如有错误,欢迎指正