php100种算法(php实现的生成排列算法示例)
php100种算法
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程序设计有所帮助。
原文链接:https://blog.csdn.net/zhaozhi406/article/details/8531944
- 用php实现弹出消息提示框(php弹出提示框的是实例写法)
- php怎么修改单独一行数据(PHP实现批量修改文件名的方法示例)
- php在if里添加xml代码(PHP创建XML接口示例)
- php数据判断函数有哪些(PHP判断函数是否被定义的方法)
- php怎么设计策略模式(php设计模式之策略模式应用案例详解)
- phpstudy详细教程学习(phpstudy的php版本自由修改的方法)
- php面向对象final怎么设置(PHP面向对象程序设计中的self、static、parent关键字用法分析)
- php如何获取当前日期(php实现获取近几日、月时间示例)
- dedecms手机独立域名(DedeCMS Wap.php 绑定域名的解决办法)
- php+mysql源码部署教程(在WIN主机IIS上支持PHP和MySQL实现方法)
- php入门教程源代码修改教程(php+js实现的无刷新下载文件功能示例)
- php生成md5(php进行md5加密简单实例方法)
- dedecms怎么调用标签(dedecms直接访问域名不能跳转到index.php)
- php设置上传文件代码(PHP大文件切割上传并带进度条功能示例)
- php网页生成程序(php生成静态页面并实现预览功能)
- webapp前端能用yii2开发吗(Yii Framework框架使用PHPExcel组件的方法示例)
- 微商在朋友圈热卖的 DL减肥咖啡 含违禁药物,你还敢买吗(微商在朋友圈热卖的)
- 八一节,说说中国女兵(八一节说说中国女兵)
- 王治郅菜鸟赛季已让八一带入正轨,大郅七大经典语录或是成功秘诀(王治郅菜鸟赛季已让八一带入正轨)
- 庆八一,重读经典红色语录,感悟互联网发展硬道理(重读经典红色语录)
- TVB新剧《黯夜守护者》将播,陈展鹏陈炜首次合作探讨人性(TVB新剧黯夜守护者将播)
- 新晋小花被称女版吴卓羲 将取代滕丽名成为TVB新一代御用女警(新晋小花被称女版吴卓羲)
热门推荐
- 排序算法口诀php(PHP快速排序算法实现的原理及代码详解)
- python技巧图解(Python魔法方法功能与用法简介)
- vue实现添加购物车小球(Vue实现简易购物车案例)
- 运营人员应具备的基本技能
- laravel 开发自定义组件(laravel实现上传图片并在页面显示的例子)
- mysql 慢查询日志
- 微信小程序日期选择器有星期天(微信小程序 滚动选择器时间日期详解及实例代码)
- opencv怎么设置图像形态(OpenCV图像颜色反转算法详解)
- mysql主从复制忽略问题(MySQL复制问题的三个参数分析)
- thinkphp框架详解(thinkphp3.2框架中where条件查询用法总结)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9