harry5224   2년 전

해당 문제 풀이들을 보면 binary search나 uppear/lower bound를 실질적으로 구현하는 풀이가 대부분입니다.

그러나 정렬 알고리즘을 STL sort()를 사용해서 구현 속도를 빠르게 하는 것과 마찬가지로 STL binary search(), uppear_bound(), lower_bound()를 쓰는 것이 구현의 속도 측면에서 더 유리하지 않나요?

알고리즘 대회에서 이진탐색을 직접적으로 구현해야 하는 필요성이 있나요? (ex. 코드 실행 속도)

아니면, 그냥 구현 방법만 숙지하고 STL binary search()를 이용하는게 속도의 측면에서 더 효율적인가요? 

Green55   2년 전

lower_bound를 쓸 수 있는 상황에서 굳이 안 쓸 이유는 없는 것 같습니다.

물론 이분탐색 자체는 lower_bound 말고도 다양한 곳에서 쓰이기때문에 필수적으로 알아야합니다,

harry5224   2년 전

알고리즘 실행 속도나 메모리 크기 부분에서도 직접 구현하는 것과 STL에 있는 것을 사용하는 것은 큰 차이가 없다고 봐도 무방한건가요?

Green55   2년 전

저도 직접 실험해본적은 없지만 STL은 가능한 굉장히 효율적으로 구현되어 있기 때문에 일반적으로 STL보다 좋게 구현하는 것은 힘듭니다. 사실 정말 궁금하시면 직접 구현해서 실험해보시는게 가장 간단한 방법일 것 같습니다.

저는 그것이 가능하다 해도 직접 구현했을 때 드는 시간과 실수 할 확률을 생각하면 STL을 쓰는게 무조건 낫다고 생각합니다.

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