js中递归的使用

自己调用自己,称为递归调用

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));
};

总结

相同的算法循环,寻找本次结果与上次结果的联系。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容