💡 함수가 자기 자신을 호출하는 행위를 재귀호출이라고 합니다.
이렇게 재귀호출을 실행하는 함수를 재귀함수라고 합니다. 재귀함수에 대해서 알아보았습니다.
1) 함수 선언문 방식
function fact(n) {
if (n <= 1) return 1;
return n * fact(n - 1);
}
2) 함수 리터럴 방식
var fact = function f(n) {
if (n <= 1) return 1;
return n * f(n - 1); // 함수 f는 함수 내에서만 유효하다.
}
function hanoi(n, from, to, other) {
if (n === 1) return;
hanoi(n - 1, from, other, to);
console.log("n번째 원판: " + from + "에서 " + to + "로 이동"); // 마지막 원반을 목적지로 이동
hanoi(n - 1, other, to, from); // 나머지 원반들을 목적지로 이동
}
function quickSort(arr) {
if (arr.length <= 1) {
return arr;
}
const pivot = arr[0]; //기준점
const left = [];
const right = [];
for (let i = 1; i < arr.length; i++) {
if (arr[i] < pivot) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
return quickSort(left).concat(pivot, quickSort(right));
}
var arr = [7, 2, 5, 1, 8, 9, 3];
console.log(quickSort(arr));