使用迭代获取长度为L的数组的所有排列

时间:2013-03-29 16:44:12

标签: javascript algorithm permutation

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

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

EG:   {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);
    }
};

0 个答案:

没有答案