全排列(PHP)
程序员文章站
2022-03-26 09:28:55
/** * 全排列结果集 * @var array */private $fullPermutationArr = []; /** * 全排列 * User: Lindsay * Date: 2018/9/6 * Time: 9:43 * @param $arr * @param string $s ......
/**
* 全排列结果集
* @var array
*/
private $fullpermutationarr = [];
/**
* 全排列
* user: lindsay
* date: 2018/9/6
* time: 9:43
* @param $arr
* @param string $str
*/
public function fullpermutation($arr, $str = '')
{
$cnt = count($arr);
if ($cnt == 1) {
array_push($this->fullpermutationarr, $str ? $str . ',' . $arr[0] : $arr[0]);
} else {
for ($i = 0; $i < count($arr); $i++) {
$tmp = $arr[0];
$arr[0] = $arr[$i];
$arr[$i] = $tmp;
$this->fullpermutation(array_slice($arr, 1), $str ? $str . ',' . $arr[0] : $arr[0]);
}
}
}
// 调用
$this->fullpermutation([1, 2, 3, 4]);
$result = $this->fullpermutationarr;
上一篇: Java开发笔记(十)一元运算符的技巧
下一篇: 并查集:集合合并与元素查找