• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

조건 질문

22.05.19 09:16 작성 조회수 143

0

질문있습니다 ~!

조건문에 lt <= rt 말고 true로 작성하는 것도 괜찮은 건가요?

            while (true) {
                let mid = Math.floor((left + right) / 2);
                if (arr[mid] === target) {
                    answer = mid + 1;
                    break;
                } else if (arr[mid] > target) right = mid - 1;
                else left = mid + 1;

            }

 

 

답변 1

답변을 작성해보세요.

0

AshRock님의 프로필

AshRock

2022.05.23

탈출조건이 없다면, 찾는 값이 없을때 무한루프에 빠질 수 있습니다. 위 코드에 target 값을 34로 설정해보시면 확인하실 수 있습니다.

문제조건에는 target이 주어진 숫자중 있다고 명시되어 있어서 괜찮겠지만, 해당 알고리즘을 이용해 다른 이분검색 문제를 푸시려면 탈출조건은 세워두시는 게 좋습니다!