작성
·
395
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;
}
답변 2
0
안녕하세요, AEJEONG님 :)
우선 답변이 늦어진 점 죄송합니다.
AEJEONG님께서 질문 주신 코드 내용을 확인해보니
let mid = parseInt(array/2);
중간값을 구하실 때 배열의 길이(arrayLength)를 2로 나누어야 하는데 배열(array)을 2로 나누어서 생기는 문제로 보입니다.
array/2 -> arrayLength/2 로 수정 후에도 문제가 발생하시거나 충분한 답변이 되지 않았다면 답글 부탁드립니다.
감사합니다. 😊
0