1. 이진 검색 단계 설명
(1) 먼저 전체 검색 간격의 중간 위치를 결정합니다. mid = (왼쪽 + 오른쪽)/2
(2) 검색할 키워드 값과 키워드 값을 사용합니다. 중간 위치에서 비교
같으면 검색 성공
더 크면 마지막(오른쪽) 절반 영역에서 절반 검색을 계속합니다.
보다 작으면 앞(왼쪽) 절반 영역에서 절반 검색을 계속합니다.
(3) 그런 다음 결정된 감소 영역에 대한 반 공식을 누르고 위의 단계를 반복하십시오.
마지막으로 검색에 성공했거나 검색에 실패했다는 결과가 나왔습니다. 이진 검색의 저장 구조는 1차원 배열로 저장됩니다. 반탐색 알고리즘 예시
2. 요구사항
(1) 순차 저장 구조를 사용해야 합니다.
(2) 키워드 크기순으로 정렬해야 합니다.
3. 예
public class Demo { public static void main(String[] args) { int[] arr={-1,0,3,5,9,12};//查找的数组 int searchNum=13;//查找的目标数 Arrays.sort(arr); int resultOne=binarySearchOne(arr,searchNum,0,arr.length-1); System.out.println(resultOne); int resultTwo=binarySearchTwo(arr,searchNum); System.out.println(resultTwo); } /** * 递归实现 * @param arr * @param searchNum * @param start * @param end * @return */ public static int binarySearchOne(int[] arr,int searchNum,int start,int end){ if(start>end) return -1; int middle=(start+end)/2; if(searchNum<arr>arr[middle]) return binarySearchOne(arr,searchNum,middle+1,end); else return middle; } /** * 非递归实现 * @param arr * @param searchNum * @return */ private static int binarySearchTwo(int[] arr, int searchNum) { int start=0; int end=arr.length-1; while(startarr[middle]) start=middle+1; else return middle; } return -1; } }</arr>
위 내용은 Java 바이너리 검색 구현 원리 및 코드 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!