-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
미해결
call stack error
20.08.26 21:32 작성 조회수 300
0
똑같이 작성한것같은데 에러가 콜 스택 에러가 나는데 왜 그런걸까요 ...ㅠㅠ
function mergeSort(array){
let arrayLength = array.length;
let result = [];
if(arrayLength <= 1){
return array;
}
let mid = parseInt(array/2);
let firstGroup = mergeSort(array.slice(0,mid));
let secondGroup = mergeSort(array.slice(mid, ))
while(firstGroup.length != 0 && secondGroup.length !=0){
if(firstGroup[0]<secondGroup[0]){
result.push(firstGroup.shift());
}else{
result.push(secondGroup.shift());
}
}
while(firstGroup.length != 0){
result.push(firstGroup.shift())
}
while(secondGroup.length != 0){
result.push(secondGroup.shift())
}
return result;
}
답변을 작성해보세요.
0
제주코딩베이스캠프
지식공유자2020.09.15
안녕하세요, AEJEONG님 :)
우선 답변이 늦어진 점 죄송합니다.
AEJEONG님께서 질문 주신 코드 내용을 확인해보니
let mid = parseInt(array/2);
중간값을 구하실 때 배열의 길이(arrayLength)를 2로 나누어야 하는데 배열(array)을 2로 나누어서 생기는 문제로 보입니다.
array/2 -> arrayLength/2 로 수정 후에도 문제가 발생하시거나 충분한 답변이 되지 않았다면 답글 부탁드립니다.
감사합니다. 😊
0
답변 2