본문 바로가기
개발/알고리즘 기초공부

Recursion - 순환함수(재귀함수) (3)

by 잡다백과사전 2021. 3. 2.
반응형

2021/03/01 - [개발/알고리즘 기초공부] - Recursion - 순환함수(재귀함수) (1)

2021/03/01 - [개발/알고리즘 기초공부] - Recursion - 순환함수(재귀함수) (2)

2021/03/02 - [개발/알고리즘 기초공부] - Recursion - 미로찾기

2021/03/04 - [개발/알고리즘 기초공부] - Recursion - Blob 셀 카운트

 

 

    //순차탐색 - 암시적 매개변수
    public int search (int[] data, int n, int target){
        for (int i=0; i<n; i++){
            if (data[i] == target) return i;
        }
        return -1;
    }

    //순차탐색 - 명시적 매개변수를 사용한 순환함수
    //검색구간의 시작점을 명시적으로 지정
    public int search_r (int[] data, int begin, int end, int target){
        if (begin > end) return -1;
        else if (target == data[begin]) return begin;
        else return search_r(data, begin+1, end, target);
    }

    //최대값 찾기
    public int findMax(int[] data, int begin, int end) {
        if (begin == end) return data[begin];
        else return Math.max(data[begin], findMax(data, begin+1, end));
    }

    //binary search 이진검색
    public static int binarySearch(String[] items, String target, int begin, int end){
        if (begin > end) return -1;
        else {
            
            int middle = (begin+end)/2;
            int compResult = target.compareTo(items[middle]);
            if (compResult == 0) return middle;
            else if (compResult < 0) return binarySearch(items, target, middle-1, end);
            else return binarySearch(items, target, middle+1, end);

        }
    }

- 순환의 시작점을 명시적으로 함수에 표기하여야함.

 

- compareTo 함수

https://m.blog.naver.com/PostView.nhn?blogId=cheesedrive&logNo=220148513502&proxyReferer=https:%2F%2Fwww.google.com%2F

 

[자바]compareTo 메소드

[자바]compareTo 메소드 /* * [compareTo] * public int compareTo(String anotherString) * 2개의 두...

blog.naver.com

 

반응형