如果所有考生都不同意调剂,算法会非常简单。
1. 每个学校每个录取专业生成一个队列,该队列容量等同于录取名额;
2. 所有考生按照总分排序,如果总分相同,再按照语数英的次序比较小分,直到形成一个考分严格递减的考生队列;
3. 每次从考生队列中取出来一个考生;
从该考生第一志愿开始匹配,如果当前志愿对应的意向专业队列未满,则该考生加入此专业队列,录取成功;
如果当前志愿未录取,则匹配下一个志愿;
遍历完所有志愿都没有匹配成功,则该考生落榜;
如果引入同校不同专业之间相互调剂的策略,则算法会复杂很多。
1. 每个学校每个录取专业生成一个队列,该队列容量等同于录取名额;同时,每个学校生成一个预录取缓冲区;
2. 所有考生按照总分排序,如果总分相同,再按照语数英的次序比较小分,直到形成一个考分严格递减的考生队列;
3. 每次从考生队列中取出来一个考生;
如果该考生第一志愿开始匹配,如果当前志愿对应的意向专业队列未满,则该考生加入此专业队列,录取成功;
如果意向专业队列已满,且已录取+预录取总数小于招生总数,且考生同意调剂,则将该考生放入该校预录取缓冲区;
如果当前志愿未录取,则匹配下一个志愿;
遍历完所有志愿都没有匹配成功,则该考生落榜;
4. 如果学校已录取+预录取总数已经等于招生总数,则停止录取,并按照一定规则将缓冲区中的考生挪到各专业队列;
--
FROM 111.206.96.*