js中递归的使用

作者: 莹莹宋 | 来源:发表于2018-03-20 20:58 被阅读0次

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

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

    总结

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

    相关文章

      网友评论

        本文标题:js中递归的使用

        本文链接:https://www.haomeiwen.com/subject/zthiqftx.html