从数组中查找特定数据的最简单方法就是遍历数组中的所有元素,这种方法也叫线性查找。线性查找适用于小型数据或未排序的数组。
1.定义数组; 2.调用方法,参数传递; 3.判断,return
这里涉及到参数传递;局部变量作为参数传递,传递时强调引用类型
import java.util.Scanner;
public class indexof {
public static void main(String[] args) {
// TODO Auto-generated method stub
// Scanner scan= new Scanner(System.in);
int[] a = new int[]{4,2,3};
System.out.println(indexOf(a,2));
}
private static int indexOf(int[] a, int value) {
// TODO Auto-generated method stub
for(int i=0;i<a.length;i++){
if(a[i]==value) return i;
}
return -1;
}
}
对于大型已排序好的数组,可以采用高效的二叉查找算法;该算法找到数组中位于中间的元素,若等于中间的元素,就返回该元素的索引,入则,将问题简化为查找已排序数组的一半元素。
1.定义数组; 2.调用方法;3.输出
注意:循环用while,可以判断;此外while里面的条件要是low<=high,不要把等于号去掉了,会没办法停止循环;此外要注意三个判断语句时,要注意顺序
public class split {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a = new int[]{2,3,5,6,9};
System.out.println(indexOf(a,3));
}
private static int indexOf(int[] a, int value) {
// TODO Auto-generated method stub
int low=0;
int high=a.length-1;
int middle;
while(low<=high){
middle=(high+low)/2;
if(value==a[middle])return middle;
if(value<a[middle]){
high=middle-1;
}else{
low=middle+1;
}
}
return -1;
}
}