더북(TheBook)

2.5 마무리

어떤 컴퓨팅 목표를 달성하는 방법은 대개 둘 이상 있으며, 사용자가 선택하는 알고리즘이 코드의 속도에 크게 영향을 줄 수 있다.

모든 상황에 완벽하게 들어맞는 단 하나의 자료 구조나 알고리즘은 거의 없다. 가령 정렬된 배열에 이진 검색을 쓸 수 있다고 해서 항상 정렬된 배열을 써야 하는 것은 아니다. 데이터 검색은 거의 없고, 데이터를 추가하기만 한다면 삽입을 더 빠르게 처리하는 배열이 더 나은 선택일 수 있다.

앞서 봤듯이 경쟁 알고리즘 간 성능을 분석하는 방법은 각각에 필요한 단계 수를 세는 것이다. 3장에서는 경쟁 자료 구조와 알고리즘의 시간 복잡도를 표현하는 형식적인 방법을 알아볼 것이다. 이러한 공통 언어가 있으면 알고리즘 선택에 더 나은 결정을 내릴 수 있는 정보를 더욱 명확하게 전달할 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.