当数组元素无序的时候,可以采用数组遍历比较的方式查找; 当数组元素是按一定顺序排列的时候,我们可以采用折半查找方法。 class ChaZhao { public static void main(String[] args) { //int[] arr={3,1,5,4,7,9}; //int Index=getIndex(arr,2); //System.out.println("Index="+Index); //如果数组里面有两个要找的数,则为第一个。 int[] arr={1,2,3,4,5,6,7}; int Index=halfSearch(arr,6); System.out.println("Index="+Index); } //数组查找 public static int getIndex(int[] arr,int key) { for(int x=0;x<arr.length;x++) { if(arr[x]==key) return x; //这个return执行过后下面的return就不再执行 } return -1; //数组角标都是从0开始的,当没有找到时,角标为-1即为没有找到该值。 } //折半查找 public static int halfSearch(int[] arr,int key) { int min,max,mid; min=0; max=arr.length-1; mid=(max+min)/2; while(arr[mid]!=key) { if (key>arr[mid]) min=mid+1; else if(key<arr[mid]) max=mid-1; if(min>max) return -1; mid=(max+min)/2; } return mid; } } |