自己调用自己,称为递归调用
function fun() {
fun();
console.log("m2");
}
fun()
举例
求阶乘
function func(n) {
if (n == 1) {
}
return n * func(n - 1);
}
斐波那契数列第n项
function func(n){
if(n==1||n==0){
return 1;
}
return func(n-1)+func(n-2)
}
快速排序
var quickSort = function (arr) {
if (arr.length <= 1) { return arr; }
var pivotIndex = Math.floor(arr.length / 2);
var pivot = arr.splice(pivotIndex, 1)[0];
var left = [];
var right = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] < pivot) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
return quickSort(left).concat([pivot], quickSort(right));
};
总结
相同的算法循环,寻找本次结果与上次结果的联系。
网友评论