令人费解的事



数组中元素的排列



策略



递归的减少和处理



Javascript的解决方案



复制代码代码如下所示:



*由cshao 12 / 23 / 14。

* /

功能getpermutation(ARR){

如果(arr.length = = 1){

{是}返回;

}

var置换{ };

对于(var i = 0;i < arr.length;i++){

无功firstele = ARR {我};

无功arrclone = arr.slice(0);

ArrClone.splice(I,1);

无功childpermutation = getpermutation(arrclone);

对于(var j = 0;J < childpermutation.length;j++){

childpermutation {,} Unshift(firstele);

}

置换= permutation.concat(childpermutation);

}

返回排列;

}

VAR排列= getpermutation({ A,B,C});

Console.dir(排列);





结果



复制代码代码如下所示:

{ { A,B,C},

{ A、C、B},

{ B,A,c},

{ B,C,A },

{ C,A,B},

{ C,B,A } }