您的位置:首页 > 编程语言 > PHP开发

基于PHP的排列组合(如输入a,b,c 输出他们的全部组合)

2016-03-24 18:25 766 查看
方法一:

1、假设初始时只有一个字母a,则它的全排列就是a

2、再a的基础上在来一个字母b,则可以将b放在a的前面或后面,这样就有两种排序(a,b)或(b,a)

3、再2的基础上再来一个字母c则c可以放在(a,b)的前中后三个位置(即分别与a,b,c进行交换)形成三个排列(c,b,a)(a,c,b)(a,b,c),也可以放在(b,a)的三个 位置形成三个排列(c,b,a)(b,c,a)(b,a,c)。至此所有字母都已排列完毕。

总结:此处采用的插入排序+递归的思想

//function swap(&a,&a,&b){

// t=t = a;

// a=a = b;

// b=b = t;

//}



function pailiezuhe(arr,arr,begin){

if($begin==0) {

print_r($arr);
echo "</br>";
}
if($begin >= count($arr)) return ;
pailiezuhe($arr,$begin+1);
for($i = $begin-1;$i>=0;$i--){
$t = $arr[$begin];
$arr[$begin] = $arr[$i];
$arr[$i] = $t;
print_r($arr);
echo "</br>";
pailiezuhe($arr,$begin +1);
$t = $arr[$begin];
$arr[$begin] = $arr[$i];
$arr[$i] = $t;
}


}

“`
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: