이진 검색 알고리즘의 순서도를 만들어 주세요
프레임워크 소개
이 10개 노드의 순서도는 정렬된 배열에서 대상 값을 검색합니다. low를 0으로, high를 n-1로 초기화한 다음 low가 high보다 작거나 같은지 확인하고 중간 지점을 계산합니다. 값이 일치하면 mid를 반환하고, 그렇지 않으면 두 번째 비교를 통해 변경할 범위를 선택합니다.
두 업데이트 단계에서는 low를 mid + 1로 설정하거나 high를 mid - 1로 설정한 뒤 범위 확인 단계로 돌아갑니다. 구간이 모두 소진되면 -1을 반환합니다. 중간 지점 상자에는 (low+high) / 2가 표시되어 있지만 정수 반올림 방식은 명시되어 있지 않으므로, 코드 중심 버전에서는 이 부분을 명확히 해야 합니다.
작은 정렬 배열을 사용해 직접 추적할 때 이 다이어그램을 활용해 보세요. 각 반복 후 low, high, mid를 기록하고, 배열에 있는 대상과 없는 대상을 모두 시험해 보세요. 이 예시는 일치하는 인덱스를 반환하지만, 중복 값 중 첫 번째 항목을 찾기 위한 별도 분기는 포함하지 않습니다.
포함 내용
이진 검색 알고리즘 순서도
✦ Free preview · Sign in to use
자주 묻는 질문
이 예시는 정렬된 배열을 전제로 합니다. 비교 과정에서 정렬 순서를 활용해 탐색 구간을 좁히며, 정렬 자체는 다이어그램의 단계에 포함되지 않습니다.
상자에는 반올림 방식이 명시되어 있지 않습니다. 인덱스 기반 버전이라면 low + floor((high-low)/2)처럼 정수 반올림을 명확히 표시하는 것이 좋습니다.
low가 high보다 커질 때까지 범위가 반복해서 업데이트됩니다. 이후 low <= high의 아니요 분기에서 -1을 반환합니다.
무료로 시작. 신용카드 불필요.