>  기사  >  Java  >  Java 바이너리 검색 구현 원리 및 코드 구현

Java 바이너리 검색 구현 원리 및 코드 구현

王林
王林앞으로
2023-04-27 08:52:061081검색

1. 이진 검색 단계 설명

(1) 먼저 전체 검색 간격의 중간 위치를 결정합니다. mid = (왼쪽 + 오른쪽)/2

(2) 검색할 키워드 값과 키워드 값을 사용합니다. 중간 위치에서 비교

같으면 검색 성공

더 크면 마지막(오른쪽) 절반 영역에서 절반 검색을 계속합니다.

보다 작으면 앞(왼쪽) 절반 영역에서 절반 검색을 계속합니다.

(3) 그런 다음 결정된 감소 영역에 대한 반 공식을 누르고 위의 단계를 반복하십시오.

마지막으로 검색에 성공했거나 검색에 실패했다는 결과가 나왔습니다. 이진 검색의 저장 구조는 1차원 배열로 저장됩니다. 반탐색 알고리즘 예시

Java 바이너리 검색 구현 원리 및 코드 구현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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제