实例如下:
<?php
/*分治法——直接选择
比如说a b c
首先将a之后的字符依次与a进行交换
1 b,a,c
2 c,b,a
注意这里少了一个原始数据 a,b,c。需要把原始数据也算如排列中
3 a,b,c
然后把字符移到第二个位置,将第二个位置之后的数分别与第二个位置的数进行交换
1 b,a,c ===> 11 b,c,a
2 c,b,a ===> 21 c,a,b
3 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的排列组合(如输入a,b,c 输出他们的全部组合)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# php排列组合
# PHP实现的简单排列组合算法应用示例
# php全排列递归算法代码
# 使用php计算排列组合的方法
# php通过排列组合实现1到9数字相加都等于20的方法
# php求数组全排列
# 元素所有组合的方法总结
# PHP输出多个元素的排列或组合的方法
# 元素所有组合的方法
# PHP实现基于图的深度优先遍历输出1
# 2
# 3...n的全排列功能
# PHP实现字符串的全排列详解
# php实现的生成排列算法示例
# 第二个
# 给大家
# 原始数据
# 治法
# 他们的
# 放在
# 已有
# 只需
# 希望能
# 少了
# 这篇
# 也算
# 浅谈
# 移到
# 将该
# 小编
# 大家多多
# 排列组合
# background
# color
相关文章:
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
建站之星安装提示数据库无法连接如何解决?
浅析上传头像示例及其注意事项
如何配置IIS站点权限与局域网访问?
建站之星如何实现五合一智能建站与营销推广?
建站主机默认首页配置指南:核心功能与访问路径优化
电脑免费海报制作网站推荐,招聘海报哪个网站多?
建站之星导航如何优化提升用户体验?
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
建站之星如何保障用户数据免受黑客入侵?
如何通过免费商城建站系统源码自定义网站主题与功能?
建站之星如何开启自定义404页面避免用户流失?
无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?
如何获取免费开源的自助建站系统源码?
5种Android数据存储方式汇总
建站之星备案是否影响网站上线时间?
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
如何在Golang中使用replace替换模块_指定本地或远程路径
PHP正则匹配日期和时间(时间戳转换)的实例代码
我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?
高端云建站费用究竟需要多少预算?
如何零成本快速生成个人自助网站?
建站之星安装后如何配置SEO及设计样式?
微信h5制作网站有哪些,免费微信H5页面制作工具?
建站之星云端配置指南:模板选择与SEO优化一键生成
独立制作一个网站多少钱,建立网站需要花多少钱?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
学校为何禁止电信移动建设网站?
娃派WAP自助建站:免费模板+移动优化,快速打造专业网站
官网网站制作腾讯审核要多久,联想路由器newifi官网
如何选购建站域名与空间?自助平台全解析
南平网站制作公司,2025年南平市事业单位报名时间?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
哈尔滨网站建设策划,哈尔滨电工证查询网站?
如何快速登录WAP自助建站平台?
岳西云建站教程与模板下载_一站式快速建站系统操作指南
南宁网站建设制作定制,南宁网站建设可以定制吗?
已有域名和空间,如何快速搭建网站?
制作网站外包平台,自动化接单网站有哪些?
已有域名如何快速搭建专属网站?
,购物网站怎么盈利呢?
免费网站制作appp,免费制作app哪个平台好?
建站OpenVZ教程与优化策略:配置指南与性能提升
如何通过西部建站助手安装IIS服务器?
如何用西部建站助手快速创建专业网站?
如何通过VPS建站实现广告与增值服务盈利?
微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?
济南企业网站制作公司,济南社保单位网上缴费步骤?
C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)
*请认真填写需求信息,我们会在24小时内与您取得联系。