h2j4607   2년 전

아래 실패코드로 진행 후 위 성공 코드를 작성하였습니다.

차이점은 아래 두곳을 명시해 두었는데요.

어디에서 문제가 발생한지 모르겠습니다.

제 생각엔 다른 점2에서 문제가 생겼을것으로 추측되는데요.

성공과 실패에 if문 차이가 1개 밖에 안나는데 이게 큰 문제로 작용할까요?

해당 부분의 문제가 맞을지, 그것에 대한 이유가 무엇인지 여쭙고 싶습니다.

alsrjs0725   2년 전

이분탐색의 종료조건이 start == end일경우 몇몇경우 에서 무한으로 돌 수 있습니다 start > end의 경우를 종료조건으로 삼으시길 바랍니다

예를 들자면 arr = [1, 2, 3, 4, 5]에서 0을 찾으려 하는경우

아래부터 숫자는 인덱스입니다

시작은 0, 끝은 4이므로 중간은 2입니다 arr[2]는 3입니다 찾으려고 하는 값보다 크니 끝은 1이됩니다

시작은 0, 끝은 1이므로 중간은 0입니다 arr[0]은 1입니다 찾으려고 하는 값보다 크니 끝은 -1이 됩니다

시작은 0, 끝은 -1이므로 중간은 -1입니다 arr[-1]은 5입니다 찾으려고 하는 값보다 크니 끝은 -2가 됩니다

시작은 0, 끝은 -2이므로 중간은 -1입니다 arr[-1]은 5입니다 찾으려고 하는 값보다 크니 끝은 -2가 됩니다 (무한반복)

댓글을 작성하려면 로그인해야 합니다.