알고리즘
[C++] 세그먼트 트리( segment tree )에 관한 설명과 사용법
세그먼트 트리( segment tree ) 소개세그먼트 트리는 주어진 대량의 데이터에 대하여, 빈번한 변경을 거쳤을 때도, 일정한 연산 수행 능력을 보여주는 자료구조라고 할 수 있습니다. 이 자료구조의 기본적인 아이디어는 이미 계산되어 있는 결과의 일부분이 변경되었다고 해서, 모든 계산 과정을 다시 거칠 필요가 없다는 생각입니다.예를 들어, 일단 100개의 숫자들의 합을 계산한 경우,50번째 이전의 데이터들이 변경되었다고 해서, 50번째부터 100번째까지의 계산도 다시 수행할 필요가 없습니다. 이렇듯, 일부 조각의 부서지면, 그 부분만을 재계산함으로써, 이전과 같은 성능을 내는 자료구조가 세그먼트 트리입니다. 시간 복잡도이 자료구조는 일단 구성되면원소의 숫자가 N개 일 때,O( logN )의 수행 속도 ..
2024. 8. 13.