javascript - 在这种情况下递归如何工作?

标签 javascript algorithm recursion quicksort

var arr = [7,3,28,8,9,13,1500,45];

function qsort(a) {
    if (a.length == 0) return [];

    var left = [], right = [], pivot = a[0];

    for (var i = 1; i < a.length; i++) {
        a[i] < pivot ? left.push(a[i]) : right.push(a[i]);
    }

    return qsort(left).concat(pivot, qsort(right));
}

alert(qsort(arr));

此例程使用快速排序算法对数组进行排序。 问题是基本情况 if (a.length == 0) return []; 将如何停止递归?

最佳答案

if (a.length == 0) return [];

当长度为 0 时停止。

关于javascript - 在这种情况下递归如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6432469/

相关文章:

javascript - Yii2 在 yii2-formwizard 的表格步骤中使用 Select2

java - 查找加起来等于给定值的数组间隔

C++ 使这个 Djikstra 实现更快

java - 如何在递归二分搜索中显示新的中间位置

mysql - 如何递归地从表中删除项目?

algorithm - Q-Learning 算法的实现是递归的吗?

javascript - Sequelize ,其中relation.attribute 等于

javascript - 如何使用 jQuery 获取自定义属性的名称?

javascript - 使用 Jquery 或 Javascript 以特定的 JSON 格式转换字符串数组

java - 混淆Java链表问题的值