psj1028   5년 전

5 4 3 2 1

넣으면

2 1 5 4 3

으로 출력이 되길래 고민을 계속 해도 어디가 틀렸는지 감이 안 잡힙니다 ㅠㅠ..

djm03178   5년 전

매번 merge_sort 함수가 호출될 때마다 ans에 이미 절반씩 부분 정렬된 a의 원소들을 앞에서부터 순서대로 비교하면서 이어붙이는 것이 병합 정렬입니다. 그런데 여기서는 a의 원소들은 일절 변경하지 않고 ans에 값을 옮기기만 하니, 함수가 종료된 후에 a는 정렬이 되지 않은 상태입니다. 그 상태로 다시 더 큰 구간에 기존의 a의 순서를 유지하면서 비교해서 넣어도, 전체가 정렬된다는 보장이 없습니다.

psj1028   5년 전

감사합니다! 이해했습니다 ㅎㅎㅎ

댓글을 작성하려면 로그인해야 합니다.