0

如何使用迭代获得长度为 L 的数组的所有可能排列的列表?

输出元素应仅包含与原始数组长度相同的排列。

例如:{1,2,3}

输出:{1,2,3} {1,3,2} {2,1,3} {2,3,1} {3,1,2} {3,2,1}

示例代码(不工作)

var swap = function(z, l, j) {
    var e = z.slice(0);
    var k = e[l];
    e[l] = e[j];
    e[j] = k;
    return e;
};
var _permu = function(p, i) {

if(i == p.length)
    console.log("com", p.join(""));
    for (var j = 0; j < i; j++) {
        var t = swap(p, j, i);
        _permu(t, i - 1);
    }
};
4

0 回答 0