js排列组合

137 阅读1分钟
<script>
function permute(temArr,testArr){
   var permuteArr=[];
   var arr = testArr;
   function innerPermute(temArr){
         for(var i=0,len=arr.length; i<len; i++) {
             if(temArr.length == len - 1) {
                 if(temArr.indexOf(arr[i]) < 0) {
                     permuteArr.push(temArr.concat(arr[i]));
                 }
                 continue;
             }
             if(temArr.indexOf(arr[i]) < 0) {
                 innerPermute(temArr.concat(arr[i]));
             }
         }
     }
 innerPermute(temArr);
 return permuteArr;     
}
     
 
console.time('permute');
 
var arr1 = [1,2,3,4];   //var arr1 = [1,2,3,4,5];
console.dir(permute([],arr1));
 
console.timeEnd('permute');
</script>

permute查看耗时

如果是5的阶乘呢?