这是数组的查询操作,1,通过索引查询元素2,采用折半查找法通过元素查询索引
<span style="font-size:18px;">import java.util.Scanner;
class A{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入数组长度:");
int x = sc.nextInt();//获取数组长度
int[] arr = new int[x];//定义数组
for(int i = 0;i < x;i++){
System.out.println("请输入第"+(i+1)+"个数组元素:");
int x1 = sc.nextInt();//获取数组中的元素
arr[i] = x1;
}
System.out.println("你输入的数组是:");
print(arr);
System.out.println("请输入你的索引:");
int x2=sc.nextInt();
int temp=searchElement(arr,x2);
System.out.println("元素是:"+temp);
System.out.println("请输入你的元素:");
int x3=sc.nextInt();
int temp1=halfSearchIndex(arr,x3);
System.out.println("元素的索引是:"+temp1);
}
//遍历
public static void print(int[] arr){
System.out.print("[");
for(int i = 0;i<arr.length;i++){
if(i!=arr.length-1)//如果不是最后一个元素
System.out.print(arr[i]+",");
else
System.out.print(arr[i]+"]");
}
System.out.println();
}
public static int searchElement(int[] arr,int index){
for(int i=0;i<arr.length;i++){
if(index==i){
return arr[i];
}
}
return -1;
}
<span style="white-space:pre"> </span>public static int halfSearchIndex(int[] arr,int key){
int min=0;//最小索引
int max=arr.length-1;最大索引
int mid;//中间索引
while(min<=max){
mid=(min+max)/2;
if(key>arr[mid])
min=mid+1;
else if(key<arr[mid])
max=mid-1;
else
return mid;
}
return -1;
}
}</span>