不多解释,上代码
public class Loadbalance {
public void loadbalance(int[] weights,int num){
int[] currentWeight = new int[weights.length];
int total = 0;
for (int i=0;i<weights.length;i++){
currentWeight[i] = weights[i];
total = total + weights[i];
}
for (int i=0;i<num;i++){
System.out.print(max(currentWeight,total,weights) + "\t");
}
}
public int max(int[] currentWeight,int sum,int[] weights){
int max = currentWeight[0];
int position = 0;
for (int i=1;i<currentWeight.length;i++){
if (max < currentWeight[i]){
max = currentWeight[i];
position = i;
}
}
currentWeight[position] = currentWeight[position] - sum;
for (int i=0;i<weights.length;i++){
currentWeight[i] = currentWeight[i] + weights[i];
}
return position;
}
public static void main(String[] args) {
int[] ad = new int[3];
ad[0]=5;
ad[1]=1;
ad[2]=1;
Loadbalance loadbalance = new Loadbalance();
loadbalance.loadbalance(ad,20);
}
}