permute("123", 0, 3);
function permute($str, $start, $strLength) {
if ($start === $strLength) {
var_dump($str);
return;
}
for ($i=$start; $i<$strLength; $i++) {
swap($str, $i, $start);
permute($str, $start+1, $strLength);
swap($str, $start, $i);
}
}
function swap(&$str, $pos1, $pos2) {
$tmp = $str[$pos1];
$str[$pos1] = $str[$pos2];
$str[$pos2] = $tmp;
}
No comments:
Post a Comment