php数组全排列,元素所有组合
<?php $source = array('pll','我','爱','你','嘿'); sort($source); //保证初始数组是有序的 $last = count($source) - 1; //$source尾部元素下标 $x = $last; $count = 1; //组合个数统计 echo implode(',', $source), "<br>"; //输出第一种组合 while (true) {$y = $x--; //相邻的两个元素if ($source[$x] < $source[$y]) { //如果前一个元素的值小于后一个元素的值$z = $last;while ($source[$x] > $source[$z]) { //从尾部开始,找到第一个大于 $x 元素的值$z--;}/* 交换 $x 和 $z 元素的值 */list($source[$x], $source[$z]) = array($source[$z], $source[$x]);/* 将 $y 之后的元素全部逆向排列 */for ($i = $last; $i > $y; $i--, $y++) {list($source[$i], $source[$y]) = array($source[$y], $source[$i]);}echo implode(',', $source), "<br>"; //输出组合$x = $last;$count++;}if ($x == 0) { //全部组合完毕break;} } echo 'Total: ', $count, "\n"; ?>
转载于:https://www.cnblogs.com/zonglonglong/p/4582452.html
php数组全排列,元素所有组合相关推荐
- php 求数组组合数,php实现求数组全排列,元素所有组合的方法
下面小编就为大家带来一篇php求数组全排列,元素所有组合的方法总结.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 本文实例讲述了php求数组全排列,元素所有组合的方法总 ...
- 多个数组间元素排列组合问题求解(Java实现)
求多个数组之间元素的排列组合问题,方法有两个:递归法.循环法. 首先应该认识到的是: 所有可以用递归实现的操作都可以转化为用while.for等循环实现. 递归法 优缺点: 数组数量不太多时用递归法确 ...
- C#求数组中元素的全排列
2019独角兽企业重金招聘Python工程师标准>>> 1.算法描述 全排列的第一项是该数组的升序排列,最后一项是该数组的降序排列.本文中用到的了一个函数FindNextArray: ...
- B09_NumPy迭代数组(控制遍历顺序,修改数组中元素的值,使用外部循环,广播迭代)
NumPy迭代数组 NumPy 迭代器对象 numpy.nditer 提供了一种灵活访问一个或者多个数组元素的方式. 迭代器最基本的任务的可以完成对数组元素的访问. 接下来我们使用arange()函数 ...
- C语言中 二维数组在内存中的存放顺序是,在计算机中二维数组的元素是按行顺序存放的,即在内存中,先顺序存放二维数组第一行的元素,再顺序存放二维数组第二行的元素,以此类推 答案:对...
相关问题 服装时尚流行趋势包含哪些元素 中国大学MOOC: 在本征半导体中掺入三价元素的杂质半导体的自由电子是( ). 下列说法正确的有( ).: 说法 逻辑 关系 上 数据 结构 类 线性 结构 结 ...
- c# 循环给数组每个元素加个逗号_C#规范整理集合和Linq
LINQ(Language Integrated Query,语言集成查询)提供了类似于SQL的语法,能对集合进行遍历.筛选和投影.一旦掌握了LINQ,你就会发现在开发中再也离不开它. 开始! 前 ...
- Java计算数组中元素的总和
数组元素的总和是指数组中所有元素(或数字)的总和.数组元素可以是整数(int)或十进制数字(float或double). 方法1:使用for循环 这是一种传统且最常用的方法,其中使用for循环来迭代数 ...
- Elastic实战:nested查询与数组同一元素匹配多个值
0. 引言 之前有同学实际生产中遇到了一个问题,题目本身不涉及生产环境上的问题,纯粹的DSL,但是因为是实际数据,因此数据量上会大很多,也增加了排错的难度.下面我们具体看下这个问题,让大家具体体会下实 ...
- 二维数组排序 java_java二维数组全排列
java 数组全排列 /** * 递归 * @param strJaggedArray 需要递归的二维数组 * @return 最终返回的字符串数组 */ private static String[ ...
最新文章
- 运用层通过shell脚本直接操控gpio
- tcp/ip详解--ttl
- Leetcode 189. 旋转数组 解题思路及C++实现
- python 模块(Module)和包
- Java对象序列化详解
- ubuntu终端显示乱码的解决
- QT的QMaterial类的使用
- IplImage* cvmat* mat 释放
- 作者:肖戎(1974-),女,广东省地方税务局高级工程师、副处长。
- 中职读计算机什么专业好,读职校选择什么专业好一些
- Mongodb-副本集
- vice versa VS the other way around
- 【温故而知新-Javascript】使用canvas元素(第一部分)
- Dubbo中多注册中心问题与服务分组
- WhiteSmoke无限试用
- traceroute 详解及结果出现*的分析
- Win10 扩展显示器后窗口不显示问题
- oauth2-怎么使用
- 文章展示从数据库到前端页面实现部分展示
- ipv6无网络访问权限怎么办