赞
踩
随着科学技术与经济水平的不断发展与提升,越来越多的人开始投身到java的学习中了,以谋求更高的薪资与更好的生活水平。今天就来为大家介绍一些java基础知识,在java算法中,如何按照权重来分配任务?一起来看看吧。
首先,假设有一些任务执行者执行一定数量的任务,并且任务的分配需要按一定的权重比来进行。任务的分配是随机的,分配完毕后需要为每条任务打上执行者的标签(也就是被谁执行)。分配算法并不难,但是用java写起来还是很有趣的。
先简述一下算法设计:
1.总的任务数能被权重和整除,那么每个人分配的数量就是:总任务数/权重和*权重;
2.总的任务数不能被权重和整除,则先按整除的数按1的方式分,然后余数再优先分给权重较小的执行者。代码展示如下://总的任务
List dataList = pm1.getDataList();
int total = dataList.size();
//待分配人员
List autoList = pmAuto.getDataList();
//总权重
int totalWight = 0;
for (int i = 0; i
{
ExecutorDTO dto = autoList.get(i);
int weight = dto.getWeight();
totalWight += weight;
}
//获得能整除的最大数
Integer maxInt = getMaxInt(totalWight, total);
int
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。