设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 数据 手机
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php实现的生成排列算法例子

发布时间:2022-06-25 14:29 所属栏目:121 来源:互联网
导读:这篇文章主要介绍了php实现的生成排列算法,结合实例形式分析了php基于递归、遍历字符串实现全排列相关算法实现技巧,需要的朋友可以参考下。 本文实例讲述了php实现的生成排列算法,分享给大家供大家参考,具体如下: ?php function perm($s, $n, $index) { i
  这篇文章主要介绍了php实现的生成排列算法,结合实例形式分析了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]);    //去掉当前的前缀
        /* 调试信息,便于理解

    $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"
  }。
 

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读