基于贪心法的宿舍分配算法设计。
首先进行宿舍分配的预处理:将所有学生的学号按性别、学院、年级、专业、班级由高到低的优先级顺序依次排列好。
取出排在最前面的学生,以该学生为对象,计算出其所在班级待分配的同性别学生与他在作息时间、兴趣爱好等特征项的匹配度以及该班级待分配的人数m,根据计算出的匹配度的值将该班级同性别学生重新排序。
根据贪心算法的思想:若m不小于n-1(n为一个宿舍的人员容量),将该学生及与其匹配度高的前n-1个学生分配到一个宿舍,并将m的值减小(n-1)。
当m小于n-1时,保存m个学生的信息,跳过这些学生,继续进行本专业下一个班级学生宿舍的分配。
重复步骤②③④,直至本专业所有班级可以分配宿舍的学生分配宿舍完毕。
将本专业还未分配到宿舍的学生(之前跳过的学生)按学号排好,取出排在最前面的学生,以该学生为对象,计算出其所在专业待分配的同性别学生与他在作息时间、兴趣爱好等特征项的匹配度以及该专业待分配的人数p,根据计算出的匹配度的值将该班级同性别学生重新排序。
根据贪心算法的思想:若p不小于n-1(n为一个宿舍的人员容量),将该学生及与其匹配度高的前n-1个学生分配到一个宿舍,并将p的值减小(n-1)。
当p小于n-1时,保存p个学生的信息,跳过这些学生,继续进行本年级下一个专业学生宿舍的分配。
依此类推直到该校所有学生分配完宿舍(不同性别不可分配在同一个宿舍)。
版权声明:本文为原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
关注微信公众号:"cq_xifan";