4.25 Alle Permutationen eines Arrays finden
Problem
Sie haben ein Array mit Elementen und möchten alle Möglichkeiten berechnen, wie diese unterschiedlich angeordnet werden können.
Lösung
Verwenden Sie einen der beiden Permutationsalgorithmen, die im Folgenden behandelt werden.
Diskussion
Die in Listing 4.6 dargestellte Funktion pc_permute()
ist die PHP-Modifikation einer grundlegenden rekursiven Funktion.
function pc_permute($items, $perms = array()) { if (empty($items)) { print join(' ', $perms) . "\n"; } else { for ($i = count($items) - 1; $i >= 0; --$i) { $newitems = $items; $newperms = $perms; list($foo) = array_splice($newitems, $i, 1); array_unshift($newperms, $foo); pc_permute($newitems, $newperms); } } }
Listing 4.6 pc_permute()
Ein Beispiel: ...
Get PHP 5 Kochbuch, Third Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.