Nehmen wir an, ich habe ein NSArray von NSNumbers wie folgt: 1, 2, 3
Dann würde die Menge aller möglichen Permutationen ungefähr so aussehen:
1, 2, 3
1, 3, 2
2, 1, 3
2, 3, 1
3, 1, 2
3, 2, 1
Was ist ein guter Weg, dies in objective-c zu tun?
Es könnte einen besseren Weg geben, dies zu tun (direkt vor Ort oder so), aber das scheint zu funktionieren:
Kopfzeile:
%Vor%Implementierung:
%Vor% Um es zu verwenden, einfach #import
die Header-Datei, und rufen Sie [yourArray allPermutations]
; Die Methode gibt ein Array mit Arrays für jede Permutation zurück.
[Code aus PHP-Code hier angepasst.]
Ich bin kürzlich auf dasselbe Problem gestoßen und habe eine rekursive Lösung geschrieben, von der ich glaube, dass sie besser lesbar ist. Es beruht auf dem Kernprinzip, das hier vermerkt ist. Ich schließe es hier für den Fall ein, dass es jemandem hilft:
%Vor%Beispielaufruf:
%Vor%Ergebnis:
1, 2, 3
1, 3, 2
2, 1, 3
2, 3, 1
3, 1, 2
3, 2, 1
Tags und Links objective-c permutation nsarray cocoa-touch nsnumber