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+swoole+linux实现系统监控和性能优化操作示例)
- php逐行读写文件(PHP实现读取文件夹及批量重命名文件操作示例)
- phpredis怎么测试成功(PHP+redis实现的限制抢购防止商品超发功能详解)
- php运用redis实现抢购实例(PHP+redis实现微博的拉模型案例详解)
- php和xml有什么关系(PHP创建XML的方法示例基于DOMDocument类及SimpleXMLElement类)
- php与xml文件(PHP读取XML文件的方法实例总结DOMDocument及simplexml方法)
- php 记录的已读状态(PHP使用观察者模式处理异常信息的方法详解)
- php的数据类型约束的好处(PHP中的Iterator迭代对象属性详解)
- apache搭建php环境(Windows上安装Apache2、PHP5、MySQL5及与Resin配合实现多系统之整合)
- php框架初始化教程学习(PHP从零开始打造自己的MVC框架之类的自动加载实现方法详解)
- phpsetcookie参数说明(PHP的cookie与session原理及用法详解)
- lnmp安装php(LNMP系列教程之二 删除站点及域名绑定)
- 用php实现弹出消息提示框(php弹出提示框的是实例写法)
- thinkphp兼容dedecms(DedeCMS Error:Tag disabled:"php"的解决办法)
- php连接mysql需要数据源吗(php连接mysql数据库最简单的实现方法)
- php运行机制与原理(PHP进阶学习之类的自动加载机制原理分析)
- 怎么才可以财富自由(如何让自己实现财富自由)
- 为什么越来越多年轻人回农村(为什么越来越多年轻人回农村生活)
- 怎么快速学好英语(怎么快速学好英语初中)
- 中国留学生都是富二代吗()
- 我们现在吃的苹果是哪里来的 原来现代苹果引入中国仅有一百多年(我们现在吃的苹果是哪里来的)
- 买绿宝不能只挑黄绿色 菜农教你3招挑,个个皮薄肉脆,香甜爆汁(买绿宝不能只挑黄绿色)
热门推荐
- docker harbor 配置中央仓库(Docker Gitlab+Jenkins+Harbor构建持久化平台操作)
- 怎样在云服务器上搭建宝塔面板(利用宝塔面板同步服务器时间的实现方法)
- mysql视图管理方法(MySQL 视图View原理解析)
- Linux ls命令的使用(Linux ls命令的使用)
- docker rabbitmq集群部署(Docker部署rabbitmq遇到的两个问题)
- python转pdf教程(Python实现将HTML转成PDF的方法分析)
- python 正则表达式菜鸟教程(详解Python正则表达式re模块)
- python中怎么连接mysql(python远程连接MySQL数据库)
- django中的limit用法(如何在Django中添加没有微秒的 DateTimeField 属性详解)
- Python实现模拟点击(用python实现刷点击率的示例代码)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9