kimchangyoung   8년 전

위 소스는 이진탐색을 구현하였는데 틀렸다고 나와서, 이진탐색이 잘못되어 그런가해서

bsearch 함수를 이용하여 해봤는데도 틀렸다고 나오네요.

틀린 이유를 잘 모르겠어서 질문합니다. 

소스 첨부했습니다.


ntopia   8년 전

cmp 함수 안에서 두 int를 직접 뺄셈하고 계신데요

만약

2147483647 - (-2147483648)

과 같이 결과값이 overflow 되는 경우에는 의도치않은 결과가 나오겠네요

대소비교를 직접 한 후 -1, 0, 1 정도를 리턴하는게 좋을 것 같습니다

kimchangyoung   8년 전

아하 감사합니다. overflow를 생각치 못했네요.

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