在n个元素的数组中,检索元素x。
线性检索算法
public class Solution{ public static void main(String[] args){ int[] array={1,2,3,4}; int index=linearSearch(array,4); System.out.println(index); } public static int linearSearch(int[] array,int x){ if(array==null||array.length==0){ return -1; } int i=0; while(i<array.length&&array[i]!=x){ i++; } return i<array.length?i:-1; } }
二分查找算法
public class Solution{ public static void main(String[] args){ int[] array={1,2,3,4}; int index=binarySearch(array,4); System.out.println(index); } public static int binarySearch(int[] array,int x){ if(array==null||array.length==0){ return -1; } int low=0; int high=array.length-1; int mid=0; while(low<=high){ mid=(low+high)/2; if(array[mid]==x){ return mid; } else if(array[mid]>x){ high=mid-1; }else{ low=mid+1; } } return -1; } }
posted on
浙公网安备 33010602011771号