JS實現的數組全排列輸出算法

function permute(input) {
  var permArr = [],
  usedChars = [];
  function main(input){
    var i, ch;
    for (i = 0; i < input.length; i++) {
      ch = input.splice(i, 1)[0];
      usedChars.push(ch);
      if (input.length == 0) {
        permArr.push(usedChars.slice());
      }
      main(input);
      input.splice(i, 0, ch);
      usedChars.pop();
    }
    return permArr
  }
  return main(input);
};
console.log(permute([5, 3, 7, 1]));

轉載自https://www.jb51.net/article/62524.htmjava

另一種是根據字符串 來排序.net

function permutate(str) {
 
    var result=[];
    if(str.length==1){
        return [str]    
    }else{
     
            var preResult=permutate(str.slice(1));
            for (var j = 0; j < preResult.length; j++) {
                for (var k = 0; k < preResult[j].length+1; k++) {
                    var temp=preResult[j].slice(0,k)+str[0]+preResult[j].slice(k);              
                    result.push(temp);              
                }
            }
        return result;
 
    }  
}
 
console.log(permutate("abc"));
相關文章
相關標籤/搜索