之前在这篇文章:基于班级条件权重表的试探性学生分班算法(详解篇)中介绍过分班算法的理论步骤。
分班算法设计仅仅是给出了一个大致的思路。
其实算法中的很多步骤在实现过程中是可以进一步优化的。
本篇文章记录一下我在实现分班算法的过程中,进行的一些优化,主要包括以下几方面:
1. 单一条件分班时采用循环算法得到最优解
2. 可配置的权重系数计算规则
3. 增加redis锁防止重复分班
4. 引入线程池将分班过程多线程化
单一条件分班时的特殊处理
单一条件分班其实是一种特殊的分班情况,这种情况下的分班结果是有最优解的,达成最优解的分班方式就是将所有学生按照分班条件排序,然后循环分班。……