var Perm = function ( arr ) {
this.arr = arr;
}
Perm.prototype.list = function() {
var arr = this.arr;
var returnArray = [];
var _swap = function ( indexA , indexB ) {
if ( indexA == indexB ) return ;
var tmp = arr[ indexB ];
arr[ indexB ] = arr[ indexA ];
arr[ indexA ] = tmp;
}
var _perm = function ( k , m ) {
if ( k == m ) {
returnArray.push( arr.slice( 0 , m+1 ) );
} else {
for (var i = k; i <= m; i++) {
_swap( k , i );
_perm( k+1 , m );
_swap( k , i );
};
}
}
_perm( 0 , arr.length - 1 );
return returnArray;
};
//test
var arr = [1,2,3,4,5];
var perm = new Perm(arr);
var resultArr = perm.list();
for (var i = 0; i < resultArr.length; i++) {
console.log( resultArr[i]);
};
js 全排列算法
最新推荐文章于 2024-11-04 14:02:44 发布