C++
[C++] Merge Sort Tree를 위한 함수, merge(), vector.resize()
도비(Doby)
2022. 3. 2. 22:41
앞선 포스트에서 Merge Sort에 대해 공부했었다.
Merge Sort를 바탕으로 만들어진 자료구조 Merge Sort Tree가 있다.
이는 세그먼트 트리처럼 각 노드에 각 구간을 정렬시킨 배열을 저장한다.
즉 머지 소트 하는 과정을 세그먼트 트리에 저장한다고 생각하면 된다.
이를 구현하는 과정에 간편하게 사용할 수 있는 함수들이 있다.
- merge(v1.begin(), v1.end(), v2.begin(), v2.end(), mergeArr.begin())
다음과 같이 사용할 수 있으며
v1의 시작부터 끝, v2의 시작부터 끝을 합병 정렬하여 mergeArr에 저장시키겠다는 뜻이다.
<algorithm> 헤더 파일에 있다.
하지만, 이 함수를 이용하기 위해서는 mergeArr에 v1, v2를 합병 정렬하여 넣을 수 있는 크기가 필요하다.
- arr.resize(size)
다음과 같은 벡터 메서드가 필요하다.
size만큼 사이즈를 가지겠다는 뜻으로 벡터의 사이즈를 변경시킬 때 용이하게 사용할 수 있다.