-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
return merge(mergeSort(left), mergeSort(right));
20.09.11 01:30 작성 조회수 125
0
return merge(mergeSort(left), mergeSort(right));
위 부분이 이해가 안되서 질문 남깁니다.
mergeSort(left)를 끝까지 다 돌고 나면 숫자가 하나밖에 안남는데,
어떻게 merge에서는 모든 값이 다 리턴되나요?
답변을 작성해보세요.
0
정태웅
2020.11.07
재귀함수라 좀 복잡한데요
mergeSoft 함수는 merge함수를 리턴하는데
return merge(mergeSort(left), mergeSort(right));
매개변수로 mergeSoft함수를 다시 호출하고 호출한 함수에서
merge함수를 다시 리턴하고 재귀함수 종료 조건
(배열의 크기가 1 이하일때까지)까지 반복된 다음에
요소가 하나인 배열에서부터야 merge 함수가 실행되요
merge함수가 실행되면 값이 정렬되면서 그 정렬된 값으로 다시
merge함수가 실행되는거죠
답변 1