穷举置换(置换)算法的javascript实现
数组中元素的排列
策略
递归的减少和处理
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 } }