Я делаю заявку на определение времени.Важные классы:
Period
id: int
clazz: Clazz
SubjectTeacher
subject: String
teacher: String
clazz: Clazz
AllocablePeriods: List<Period>
Вот пример данных, где Джейн и Джон преподают в одном классе, а Джейн в другом классе.
{sub435, Jane-Algebra-Class1, {1,2,3,4,5,6,7,8}}
{sub124, Jane-Calculus-Class2, {9,10,11,12,13,14,15,16}}
{sub875, John-English-Class1, {1,2,3,4,5,6,7}} //he cannot take #8
Моя цель состоит в том, чтобыобнаружить возможных обменов для каждого SubjectTeacher
.Например, в приведенном выше примере Jane-Algebra-Class1
и John-English-Class1
имеют потенциальные перестановки
{1,Jane-Algebra-Class1,John-English-Class1}
{2,Jane-Algebra-Class1,John-English-Class1}
...
{7,Jane-Algebra-Class1,John-English-Class1}
Что такое хороший алгоритм / метод для обнаружения всех возможных перестановок для всех SubjectTeacher
с?