• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP的排列组合详解

php 搞代码 4年前 (2022-01-22) 28次浏览 已收录 0个评论

下面小编就为大家带来一篇浅谈PHP的排列组合-。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

实例如下:

<?php/*分治法——直接选择比如说a b c首先将a之后的字符依次与a进行交换1 b,a,c2 c,b,a注意这里少了一个原始数据 a,b,c。需要把原始数据也算如排列中3 a,b,c然后把字符移到第二个位置,将第二个位置之后的数分别与第二个位置的数进行交换1 b,a,c ===> 11 b,c,a2 c,b,a ===> 21 c,a,b3 a,b,c ===> 31 a,c,b**/function zuhe($arr,$begin){  if(!is_array($arr)) return ;  $N = count($arr);  if($begin == $N-1 || $begin >$N || $begin <0) return ;  if($begin == 0){    print_r($arr);//输出原始数据    echo '</br>';  }   //循环将初始值与第i个值交换后进行组合  for($i = $begin;$i < $N;$i++){    $t = $arr[$begin];    $arr[$begin] = $arr[$i];    $arr[$i] = $t;    if($i!==$begin){//i==begin时的数已经输出过      print_r($arr);      echo '</br>';    }    zuhe($arr,$begin+1);      $t = $arr[$begin];    $arr[$begin] = $arr[$i];    $arr[$i] = $t;  }}$arr = array('a','b','c','d');//zuhe($arr,0);/*分治法——直接插入初始时从0个元素开始,输出初始序列,为组合的一个序列当在来一个元素时只需将该元素放在该元素之前的元素组的不同的位置即组成了不同的排列如已有元素组为a,b.新元素为c,把c分别与a,b进行交换即可(a,c,b);(c,b,a),在现有的排列上在新增元素重复执行以上步骤*/function zuhe2($arr,$begin){  if($begin==0) {    print_r($arr);    echo "</br>";    //zuhe2($arr,$begin+1);  }  if($begin >= count($arr)) return ;  zuhe2($arr,$begin+1);//begin时的排列上一次已产生,直接新增元素  for($i = $begin-1;$i>=0;$i--){    $t = $arr[$begin];    $arr[$begin] = $arr[$i];    $arr[$i] = $t;    print_r($arr);    echo "</br>";    zuhe2($arr,$begin +1);    $t = $arr[$begin];    $arr[$begin] = $arr[$i];    $arr[$i] = $t;  }}

以上就是本文的全部内容,希望对大家的学习有所帮助。

相关推荐:

PHP实现的单排列组合算法实例详解

PHP简单本文来源gaodai$ma#com搞$$代**码)网8搞代gaodaima码排列组合算法示例分享

JS全排列组合算法实现方法

以上就是PHP的排列组合详解的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP的排列组合详解

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址