js 全排列算法

来源:互联网 发布:数据库设计的范式 编辑:程序博客网 时间:2024/05/17 01:45
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;};//testvar 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]);};

0 0
原创粉丝点击