이진 검색 (이분법)에있어서의 배열

// 이진 검색 (분열)
공공 무효 arrayHalfQuery () {
    int 형 정수 데이터 유형의 배열의 // 정의
    INT [] = {NUM 1,3,4,7,9,10,12,15,17 , 19,21,22,25,26,28,29,30는}
    //이 찾는 키 값을 정의
    INT = 18은 키이다
    // 삭제 배열 첨자 최대 및 최소 인덱스
    INT 최소 = 0 ]
    . INT = num.length 맥스 1;
    // 무한 루프를 호출
    {(참으로)를 잠시
        반 표준 중간 값 룩업의 // 정의
        ; MID = (최대 + 최소) INT / 2
        // 키값 경우 중간 값이 목표 값과 동일하고, 다음 검색이 성공하고, 루프의 출력
        에 IF (키 == NUM [미드]) {
            에서 System.out.println ( "당신은 인덱스 값 조회 할"+ MID)
            BREAK 단계;
            // 만약 제외 좌측 키 NUM [미드] 값보다 크면, 분 중간의 중간으로 이동 + 1
        }는 다른 IF (키> NUM [미드]) {
            분 + +1 = MID;
            값이 키 // NUM [미드] 미만인 경우, 권리는 맥스 미드 (1)의 중간으로 이동 제외한다
        }를 다른 IF (키 <NUM [MID]) {
            최대 = MID -1;
        }
        // 최대 분 미만의 경우, 또한 발견되지 않은 완전한 배열 설명을 찾아, 무한 루프의 끝
        // 때문에 세 개의 케이스 키, 그래서 당신이 다른 경우에는 사용할 수 없습니다 혼자 문을 분기 사용하려는 경우
        경우 (최대 <분) {
            에서 System.out.println (당신 " 어레이 ") ;! 존재하지 않는 값을 찾는
            BREAK 단계;
        }
    }
}

추천

출처www.cnblogs.com/private-mingmie/p/11826660.html