/*** Binary Search, also known as binary lookup, is a highly efficient method of finding. "Two-point lookup Requirements": 1. Sequential storage structure must be used 2. Must be ordered by keyword size. * @authorAdministrator **/ Public classBinarySearch { Public Static voidMain (string[] args) {int[] src =New int[] {1, 3, 5, 7, 8, 9}; System.out.println (BinarySearch (SRC,3)); System.out.println (BinarySearch (SRC,3,0,src.length-1)); } /*** * binary search Algorithm * * * *@paramSrcarray * Ordered array * *@paramdes * Find elements * *@returnarray subscript for DES, not found return-1*/ Public Static intBinarySearch (int[] Srcarray,intdes) { intLow = 0; intHigh = Srcarray.length-1; while(Low <=High ) { intMiddle = (low + high)/2; if(des = =Srcarray[middle]) { returnMiddle; }Else if(Des <Srcarray[middle]) { High= Middle-1; }Else{ Low= middle + 1; } } return-1; } /*** Binary finds the position of a specific integer in an integer array (recursive) * @paramdataset-Unknown Origin array * @paramdata-Find element * @parambeginIndex-range start subscript * @paramendIndex-range End subscript * @returnindex-Returns the subscript value*/ Public Static intBinarySearch (int[] DataSet,intDataintBeginindex,intEndIndex) { intMidindex = (beginindex+endindex)/2; if(Data <dataset[beginindex]| | data>dataset[endindex]| | Beginindex>EndIndex) { return-1; } if(Data <Dataset[midindex]) { returnBinarySearch (dataset,data,beginindex,midindex-1); }Else if(data>Dataset[midindex]) { returnBinarySearch (dataset,data,midindex+1, EndIndex); }Else { returnMidindex; } } }
Java implementation of binary search method