关于排监考的算法(求助,急)

hdjava 2007-12-11 09:54:20
要做一个给老师排监考的系统。
相关数据表有:1、监考人员表(列出了所有要参加监考的老师)
2、监考任务表(列出了所有要排监考的任务,主要字段如监考时间,主考老师)
希望达到分配平均,每个监考老师的监考次数大致相同。

我的算法大致是这样的:
遍历监考人员表,对于每个老师,做如下步骤:

依次遍历监考任务表中的每条任务,如果该时间该人没有主考任务且没有其他的监考任务,则把这个任务分给该老师。
同时会统计给该老师已排的监考次数,已分配出去的监考任务也会做标记,不再参与下面的分配。

对于该老师分配完监考后,会对监考人员表中的下一个老师做以上同样的步骤,依次下去。

这种算法做很多情况下是可以的,但是也有些个别情况就有问题。
如现在有3个人要参与监考,监考任务有6条,监考时间依次是a,b,c,d,e,e
那按我的算法前两个人分配的监考时间分别是(a,b)(c,d),而第三个人就只能分配一个e了,另一个监考时间e就无法分出去。
其实该任务是可以完全分配出去的,如(a,e),(b,e),(c,d)

我应该采用怎样的分配算法才能用于所有情况?另外,除了我这样的算法之外,是不是还有一些效率高,速度快的算法,望高手指教。谢谢
...全文
665 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hdjava 2008-01-08
  • 打赏
  • 举报
回复
这段时间忙,忘了散分了
Tiger_Zhao 2007-12-11
  • 打赏
  • 举报
回复
将任务按时间排序,将人员随意排成一个环,逐人发布一个任务,几圈下来就好了。只要人数≥同时发生的任务数,就不会有问题。

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧