4조TreeZ
예를들어 1 3 4 2 라는 배열을 병합 정렬로 정렬한다면
13 / 42
1 / 3 // 4 / 2
까지 배열의 크기를 나눈 후,
1/3 // 2/4
1/2/3/4
1234
의 과정에 걸쳐서 병합을 통해 다시 배열한다고 하셨는데, 결국 이 배열을 병합하는 순간에도 큰 수와 작은 수를 비교해서 위치를 옮겨주는 알고리즘은 필요하지 않나요?
결국 2와 4의 위치를 바꿀 때, 그리고 병합해서 크기 4의 배열로 만드는 순간에도 3과 2의 위치를 바꾸어주는 알고리즘이 필요할텐데, 병합정렬은 이 문제를 어떤 방식으로 해결하나요?
또한 이 과정에서 결국 버블정렬이나 선택정렬과 같은 방법이 사용되는 거라면, 결국 크기 4인 배열에 해당 정렬방식을 적용하는 것과는 (시간이 훨씬 덜 걸린다는건 강의 내의 시각자료로 이해했습니다) 어떤 차이가 발생하기에 더 효율적으로 정렬되는건가요?
comment