两种轮询平均分配的算法

1 第二种简单轮询算法

 1  定义一个变量保存索引值,然后每赋值一次, 就加1   用索引取值, 这样的话必须 是list才能取到里面的第几个

            int f = 0;
            for (int j = 0; j < ziNode.size(); j++) {
                if (f >= maps.size()) {
                    f = 0;
                }
                listAllMap.get(maps.get(f)).add(ziNode.get(j));
                f++;
            }

 

 

2 第二种简单算法 需要运算

  1.  定义一标识, 记录上次访问的该目标对象(标识应该是索引等,需要有规律性)

  2.  (该标识 + 1) 取模, 然后获取到该目标对象. 同时更新该目标标识

  3. R=5/11   得到余数6  第6个索引  不足计算的补0后再取取余  比如 值是0.4,余数为6


public static void main(String[] args) {
		int[] arr = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
		int index = 4; // 索引:指定起始位置
		for (int i = 0; i < 17; i++) {
//取模 为了得到下一个数
			int nextIndex = (index + 1) % arr.length;
			index = nextIndex;
			System.out.println(arr[index] + " ,index=" + index);
		}
	}

 

 

 

©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值