admin管理员组

文章数量:1516870

查找

二分法查找,递归实现

    public static void main(String[] args){int arr[] = {2,12,16,17,19,22,35,37};int index = BinarySearch(35,0,arr.length,arr);System.out.println(index);}public static int BinarySearch(int elem,int low,int high,int arr[]){//二分法查找,递归实现//对于有序集合,如果无序先进行排序if(low > high) return -1;int min = (low + high)/2;if(arr[min] == elem) return min;if(arr[min] > elem) return BinarySearch(elem,low,min-1,arr);if(arr[min] < elem) return BinarySearch(elem,min+1,high,arr);return -1;}

二分法查找实现

	//二分法查找实现int arr[] = {2,12,16,17,19,22,35,37};int temp = 36;int start = 0;int end = arr.length;int count = 0;while(true){count ++;if(count > arr.length){System.out.println("没有找到这个数");break;}int min = (start + end)/2;if(arr[min] > temp){end = min;}else if(arr[min] < temp){start = min;}else{System.out.println(min);break;}}

转载于:.html

本文标签: 查找