for문은 반복횟수가 명확할 경우에 씁니다. 이진탐색의 경우 상황에 따라 반복횟수가 달라지니 조건문이 있는 while문을 쓰는 겁니다. for문을 쓸경우 다시 조건문을 통해 break로 빠져나오야 하니 while문이 더 낫습니다.
+0
2019년 7월 3일
start_index를 mid-1, end_index를 mid+1로 재설정을 함으로 인해 같거나 역전하는 경우가 생기게 됩니다. 만약 start_index와 end_index를 mid로 재설정을 한다면, 11을 찾는 경우에 start_index는 3, end_index는 4, mid는 (3+4)//2로 3이 되므로 무한 루프에 빠지게 됩니다. 이를 방지하기 위해 mid에 +-1을 해주는 겁니다.
+0
2019년 7월 29일
엇갈리는 순간 start가 end를 뒤집을 일이 있을 까요 -> binary_search(3, [2, 4, 5, 7, 11]) 이렇게 되면 start가 end보다 큰 경우가 발생합니다.
댓글 3개