• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    php实现的生成排列算法示例

    本文实例讲述了php实现的生成排列算法。分享给大家供大家参考,具体如下:

    ?php
    function perm($s, $n, $index)
    {
      if($n == 0)
      {
         return '';
      }
      else
      {
        $nIndex = count($index);  //可用的字符串下标
        $res = array();
        foreach($index as $i => $v)
        {
          $tmp = $index;
          unset($tmp[$i]);    //去掉当前的前缀
          /* 调试信息,便于理解
          echo "len $n , cur $i , index:\n";
          var_dump($tmp);
           */
          $ret = perm($s, $n-1, $tmp);  //递归得到稍短的排列
          if($ret != '')
          {
            foreach($ret as $r)
            {
              $res[] = $s[$v] . $r;  //将稍短的排列逐个拼上当前的前缀
            }
          }
          else
          {
            $res[] = $s[$v];
          }
        }
        return $res;
      }
    }
    function getPerm($s)
    {
      $n = strlen($s);
      $index = range(0, $n-1);
      //得到不同长度的排列
      for($i=1; $i=$n; $i++)
      {
        var_dump(perm($s, $i, $index));
      }
    }
    getPerm('abcd');
    ?>
    
    

    运行结果:

    array(4) {
      [0]=>
      string(1) "a"
      [1]=>
      string(1) "b"
      [2]=>
      string(1) "c"
      [3]=>
      string(1) "d"
    }
    array(12) {
      [0]=>
      string(2) "ab"
      [1]=>
      string(2) "ac"
      [2]=>
      string(2) "ad"
      [3]=>
      string(2) "ba"
      [4]=>
      string(2) "bc"
      [5]=>
      string(2) "bd"
      [6]=>
      string(2) "ca"
      [7]=>
      string(2) "cb"
      [8]=>
      string(2) "cd"
      [9]=>
      string(2) "da"
      [10]=>
      string(2) "db"
      [11]=>
      string(2) "dc"
    }
    array(24) {
      [0]=>
      string(3) "abc"
      [1]=>
      string(3) "abd"
      [2]=>
      string(3) "acb"
      [3]=>
      string(3) "acd"
      [4]=>
      string(3) "adb"
      [5]=>
      string(3) "adc"
      [6]=>
      string(3) "bac"
      [7]=>
      string(3) "bad"
      [8]=>
      string(3) "bca"
      [9]=>
      string(3) "bcd"
      [10]=>
      string(3) "bda"
      [11]=>
      string(3) "bdc"
      [12]=>
      string(3) "cab"
      [13]=>
      string(3) "cad"
      [14]=>
      string(3) "cba"
      [15]=>
      string(3) "cbd"
      [16]=>
      string(3) "cda"
      [17]=>
      string(3) "cdb"
      [18]=>
      string(3) "dab"
      [19]=>
      string(3) "dac"
      [20]=>
      string(3) "dba"
      [21]=>
      string(3) "dbc"
      [22]=>
      string(3) "dca"
      [23]=>
      string(3) "dcb"
    }
    array(24) {
      [0]=>
      string(4) "abcd"
      [1]=>
      string(4) "abdc"
      [2]=>
      string(4) "acbd"
      [3]=>
      string(4) "acdb"
      [4]=>
      string(4) "adbc"
      [5]=>
      string(4) "adcb"
      [6]=>
      string(4) "bacd"
      [7]=>
      string(4) "badc"
      [8]=>
      string(4) "bcad"
      [9]=>
      string(4) "bcda"
      [10]=>
      string(4) "bdac"
      [11]=>
      string(4) "bdca"
      [12]=>
      string(4) "cabd"
      [13]=>
      string(4) "cadb"
      [14]=>
      string(4) "cbad"
      [15]=>
      string(4) "cbda"
      [16]=>
      string(4) "cdab"
      [17]=>
      string(4) "cdba"
      [18]=>
      string(4) "dabc"
      [19]=>
      string(4) "dacb"
      [20]=>
      string(4) "dbac"
      [21]=>
      string(4) "dbca"
      [22]=>
      string(4) "dcab"
      [23]=>
      string(4) "dcba"
    }

    更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数据结构与算法教程》、《php程序设计算法总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP常用遍历算法与技巧总结》及《PHP数学运算技巧总结》

    希望本文所述对大家PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • PHP实现的简单排列组合算法应用示例
    • php全排列递归算法代码
    • 使用php计算排列组合的方法
    • 浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
    • php通过排列组合实现1到9数字相加都等于20的方法
    • php求数组全排列,元素所有组合的方法总结
    • PHP输出多个元素的排列或组合的方法
    • php求数组全排列,元素所有组合的方法
    • PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
    • PHP实现字符串的全排列详解
    上一篇:Yii框架中使用PHPExcel的方法分析
    下一篇:yii框架使用分页的方法分析
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    php实现的生成排列算法示例 php,实现,的,生成,排列,算法,