#include <iostream>
using namespace std;

int main()
{
    int arr[] = {2, 5, 8, 12, 17, 20, 25};
    int target = 20;

    int l = 0;
    int r = 6;

    while(l <= r)
    {
        int mid = (l + r) / 2;

        cout << "l=" << l
             << " r=" << r
             << " mid=" << mid
             << " value=" << arr[mid]
             << endl;

        if(arr[mid] == target)
        {
            cout << "찾았다!" << endl;
            break;
        }
        else if(arr[mid] < target)
        {
            // 빈칸
        }
        else
        {
            // 빈칸
        }
    }
}
arr[mid] < target 이면
왜 l = mid + 1 인가?

arr[mid] > target 이면
왜 r = mid - 1 인가?
-----------------------------------------------------
#include <iostream>
using namespace std;

int main()
{
    int arr[] = {1,3,5,7,9,11,13,15,17};
    int target = 15;

    int l = ________;
    int r = ________;

    while(________)
    {
        int mid = ________;

        if(arr[mid] == target)
        {
            cout << mid;
            break;
        }
        else if(arr[mid] < target)
        {
            ________;
        }
        else
        {
            ________;
        }
    }
}
--------------------------------------------
#include <iostream>
using namespace std;

int main()
{
    int arr[] = {1,3,5,7,9,11,13,15,17};
    int target = 15;

    int l = 0;
    int r = 8;

    while(l <= r)
    {
        int mid = (l + r) / 2;

        if(arr[mid] == target)
        {
            cout << mid;
            break;
        }
        else if(arr[mid] < target)
        {
            l = mid;
        }
        else
        {
            r = mid;
        }
    }
}

이 코드는 왜 무한루프가 발생할 수 있을까?
---------------------------------------
#include <iostream>
using namespace std;

int main()
{
    int arr[] = {2,4,6,8,10,12,14,16,18,20};
    int target;

    cin >> target;

    // 여기에 이분탐색 작성

}
찾으면 인덱스 출력
없으면 -1 출력

























    

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: