Doby's Lab

[C++] Merge Sort Tree를 위한 함수, merge(), vector.resize() 본문

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만큼 사이즈를 가지겠다는 뜻으로 벡터의 사이즈를 변경시킬 때 용이하게 사용할 수 있다.

728x90