关于排监考的算法(求助,急)
要做一个给老师排监考的系统。
相关数据表有:1、监考人员表(列出了所有要参加监考的老师)
2、监考任务表(列出了所有要排监考的任务,主要字段如监考时间,主考老师)
希望达到分配平均,每个监考老师的监考次数大致相同。
我的算法大致是这样的:
遍历监考人员表,对于每个老师,做如下步骤:
依次遍历监考任务表中的每条任务,如果该时间该人没有主考任务且没有其他的监考任务,则把这个任务分给该老师。
同时会统计给该老师已排的监考次数,已分配出去的监考任务也会做标记,不再参与下面的分配。
对于该老师分配完监考后,会对监考人员表中的下一个老师做以上同样的步骤,依次下去。
这种算法做很多情况下是可以的,但是也有些个别情况就有问题。
如现在有3个人要参与监考,监考任务有6条,监考时间依次是a,b,c,d,e,e
那按我的算法前两个人分配的监考时间分别是(a,b)(c,d),而第三个人就只能分配一个e了,另一个监考时间e就无法分出去。
其实该任务是可以完全分配出去的,如(a,e),(b,e),(c,d)
我应该采用怎样的分配算法才能用于所有情况?另外,除了我这样的算法之外,是不是还有一些效率高,速度快的算法,望高手指教。谢谢