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));

  • 相关阅读:
    软工实践个人总结
    实验 7:OpenDaylight 实验——Python 中的 REST API 调用(含选做)
    2020软工实践第二次结对作业
    mocha单元测试简单教程
    实验 6:OpenDaylight 实验——OpenDaylight 及 Postman实现流表下发
    实验 5:OpenFlow 协议分析和 OpenDaylight 安装
    实验 4:Open vSwitch 实验——Mininet 中使用 OVS 命令
    福州大学软件工程实践第一次个人编程作业
    实验 3:Mininet实验 —— 测量路径的损耗率
    实验 2:Mininet 实验——拓扑的命令脚本生成
  • 原文地址:https://www.cnblogs.com/laiso/p/8597686.html
Copyright © 2011-2022 走看看