>  기사  >  Java  >  Java의 이진 검색 알고리즘에서 재귀를 사용하는 방법은 무엇입니까?

Java의 이진 검색 알고리즘에서 재귀를 사용하는 방법은 무엇입니까?

WBOY
WBOY앞으로
2023-05-09 18:40:08786검색

1. 재귀 개념

자신을 호출하는 프로그램의 프로그래밍 기술을 재귀라고 합니다. 대규모 문제를 소규모 문제로 전환합니다. 문제는 그대로 유지되고 규모는 작아집니다.

2. 두 가지 전제

종료 조건 - 특정 조건이 충족되면 함수가 특정 값을 반환하고 더 이상 재귀적으로 호출하지 않습니다.

재귀 호출 - 함수가 자신을 호출하고 해당 입력 값이 종료 조건에 더 가깝습니다.

3. 이진 검색의 재귀적 예

/**
     * 递归实现二分查找
     * @param arr
     * @param left
     * @param right
     * @param val
     * @return
     */
private static int binarySearch(int[] arr, int left, int right, int val) {
        if (val < arr[left] || val > arr[right] || left > right) {
            return -1;
        }
        int middle = (left + right)/2;
        if(val < arr[middle]){
            return binarySearch (arr,0,middle-1,val);
        }
        if(val > arr[middle]){
            return binarySearch (arr,middle+1,right,val);
        }else{
            return middle;
        }
}

위 내용은 Java의 이진 검색 알고리즘에서 재귀를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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