편집 기록

편집 기록
  • 프로필 유동욱님의 편집
    날짜2018.11.08

    이분검색-low,high 두값을 파라미터만 받아 재귀로 구현


    include

    int location(int low,int high);

    int main(void) {

    int n, num, x, i = 0;
    //int arr[3];
    //printf("순서대로 입력해주세요");
    //for (i = 0; i < 3; i++) {
    //  scanf("%d", arr[i]);
    //}
    
    printf("검색할 숫자를 입력해주세요");
    scanf("%d", &x);
    printf("%d\n",location(0,2));
    return 0;
    

    } int location(int low,int high) {

    int mid;
    if (low > high)
        return 0;
    else {
        mid = (low + high) / 2;
    
        if (x == arr[mid])
            return mid;
        else if (x < arr[mid])
            return location(low, mid - 1);
        else
            return location(mid + 1, high);
    
    }
    

    }

    파라미터로 low,high 두값만을 인자로받아 이분탐색을 재귀로 구현하는것인데... 파리미터로 x와arr을 받지않았는데..어떻게 구현해야할까 ? 도움 받고싶습니다.

  • 프로필 알 수 없는 사용자님의 편집
    날짜2018.09.17

    이분검색-low,high 두값을 파라미터만 받아 재귀로 구현


    include

    int location(int low,int high);

    int main(void) {

    int n, num, x, i = 0;
    //int arr[3];
    //printf("순서대로 입력해주세요");
    //for (i = 0; i < 3; i++) {
    //  scanf("%d", arr[i]);
    //}
    
    printf("검색할 숫자를 입력해주세요");
    scanf("%d", &x);
    printf("%d\n",location(0,2));
    return 0;
    

    } int location(int low,int high) {

    int mid;
    if (low > high)
        return 0;
    else {
        mid = (low + high) / 2;
    
        if (x == arr[mid])
            return mid;
        else if (x < arr[mid])
            return location(low, mid - 1);
        else
            return location(mid + 1, high);
    
    }
    

    }

    파라미터로 low,high 두값만을 인자로받아 이분탐색을 재귀로 구현하는것인데... 파리미터로 x와arr을 받지않았는데..어떻게 구현해야할까 ? 도움 받고싶습니다.