数组中的元素进行查找,打印出需求的元素

来源:互联网 发布:轩辕剑四极进阶数据 编辑:程序博客网 时间:2024/05/19 05:34
/*需求: 对数组中的元素进行查找,打印出需求的元素。思路: 对数组中元素查找的过程就是对数组的遍历过程,在遍历的过程中,加入判断语句。步骤:*/class ArrayGetIndex{public static void main(String[] args){int[] arr={1,2,5,8,9};int index= halfSearch2(arr,2);//int index=getIndex(arr,7);System.out.println("index="+index);//System.out.println("a["+i+"]"+arr[i]);}//功能:获取key第一次在数组中出现的位置。如果返回值是-1,代表key之不存在。public static  int getIndex(int[] arr,int key)//获取数组中的元素。{for(int i=0;i<arr.length-1;i++)//遍历的同时进行判断。{if(arr[i]==key)//System.out.println("a["+i+"]"+arr[i]);return i;}return -1;}//折半查找,在有序的数组中效率较高。public static int halfSearch(int[] arr,int key){int min,max,mid;min=0;max=arr.length-1;mid=(min+max)/2;while(key!=arr[mid])//折半过程{if(key>arr[mid])min=mid+1;else if(key<arr[mid])max=min-1;if(min>max)//如果return -1;mid=(min+max)/2;}return mid;}//折半查找的第二种方式,public static int halfSearch2(int[] arr,int key){int min=0,max=arr.length-1,mid;mid=(min+max)>>1;while(min<=max)//折半操作{if(arr[key]>arr[mid])min = mid+1;else if(arr[key]<arr[mid])max = min-1;elsereturn mid;}return -1;}}

原创粉丝点击