dlwlgh2790   2년 전

우선 첨부한 코드는 정답으로 처리가 된 코드 입니다.

하지만 Arrays.sort를 사용하지 않고 주석 처리한 병합 정렬 코드를 사용하면 메모리 초과가 납니다.

가능하다면 그 이유를 알고 싶습니다!

jcreate98   2년 전

메모리 초과하는지 계산은 안해봤지만

Merge Sort의 경우 정렬하는 과정에서 

int[] sorted = new int[A.length];

이와 같이 추가적인 배열을 선언해야 되기 때문에 O(n log n)로 속도가 빠르더라도

배열의 크기가 길어지면 그 만큼 차지하는 메모리의 공간이 늘어나서 메모리 초과가 나는 것 같습니다

dlwlgh2790   2년 전

감사합니다!

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