Soweit ich die Anfrage verstand, geht es um das Sortieren zweidimensionaler Arrays.
Darum geht es eigentlich gar nicht.
Jeder Block/Zeile hat mehrere unterschiedliche gültige Anordungen wo es nun gilt ein Optimum zu finden.
Sortieren - Nein
Array - eindimensional (der Block/die Zeile) aber unerheblich, mittels Permutation iterieren wir über die möglichen Anordnungen und wird bei der Lösungssuche als Einheit betrachtet
Array - die Auflistung der Blöcke ist auch eindimensional und bleibt statisch - also auch unerheblich
Ok, ganz am Schluß kommt es darauf an, bei welcher Konstellation es die wenigsten Wechsel gibt ...