zoukankan      html  css  js  c++  java
  • 全排列与全组合

    //全排列
    var arr = ["a", "b", "c", "d"];
    //实现全排列
    function AllPermuAndCombi(arr,length){
            var Allresult=[];
               for(var i=1;i<=length;i++){
                 Allresult=Allresult.concat(mainFunction(arr,i));

    }
         return Allresult;
    }
    function mainFunction(Arr, num) {
             var resultArr = [],
                resultNum = 0,
                         iNow = 1;
                  if(num == 1) {
                   return Arr;
                    }
            function PermuAndCombina(arr, iNow, str) {

                     for(var i = 0; i < arr.length; i++) {
                            var result = arr.concat();
                            var strClone = str;
                            strClone += result.splice(i, 1);
                             if(iNow == num) {
                                 resultNum += result.length;
                                  for(var j = 0; j < result.length; j++) {
                                            resultArr.push(strClone + result[j]);
                                    }
                              } else {
                                   PermuAndCombina(result,iNow+1, strClone);
                              }
                     }

           }
    //组合,涉及的是数组去重
    function unique(arr){
          for (var i=0;i<arr.length;i++) {
                arr[i]=arr[i].split("").sort().join("");
            }
           var result=[];
            var obj={};
          for (var i = 0; i < arrength; i++) {
                 if (!obj[arr[i]]) {
                        result.push(arr[i]);
                          obj[arr[i]]=1;
                     }
            }

          return result;
    }
           PermuAndCombina(Arr,iNow+1, "");
    // resultArr.push(resultNum);
    //resultArr=unique(resultArr)
             return resultArr;
    }
    console.log(mainFunction(arr,2));
    console.log(AllPermuAndCombi(arr,3));
    //组合
    var Arr_un=[1,5,3,1,7,3];
    //数组去重
    function Array_unique(Arr){
    var result=[];
    var Obj={};
    for (var i=0;i<Arr.length;i++) {
    if (!Obj[Arr[i]]) {
    result.push(Arr[i]);
    Obj[Arr[i]]=1;
    }
    }
    return result;
    }
    console.log(Array_unique(Arr_un));

  • 相关阅读:
    《Real Time 3D Terrain Engines Using C++ And DirectX9》(实时地形引擎)随书源码
    (转)ogreUML类图
    (转)导弹跟踪算法
    转:正则表达式语法
    读取数据
    Python lambda用法及其与def的区别
    转Vb6.0安装失败解决办法,完全卸载VB(提高班里win7没装上VB的可以看看,我实验成功了)
    vb imagelist 作用
    二叉树的实现
    转:Python语言编程学习资料(电子书+视频教程)下载汇总:
  • 原文地址:https://www.cnblogs.com/laiso/p/8597686.html
Copyright © 2011-2022 走看看