分片算法(java)
以前写的一个分片算法,对股票进行分片处理,保证每台机器处理的股票数是平均的,下面的核心算法是返回当前机器处理的数量:
import java.util.HashMap; import java.util.Map; /** * @author LIANGXI * @Description:分片算法 * */ public class Utils { public static void main(String[] args) { Integer splitStockCode = splitStockCode(5000, 5, 1); System.out.println(splitStockCode); } /** * 对股票代码进行分片 * @param countNum 总数 * @param splitNum 片数 * @param spoutNum 几号机 * @return */ public static Integer splitStockCode(int countNum,int splitNum,int spoutNum) { Map<Integer,Integer> map = new HashMap<Integer, Integer>(); if(countNum < splitNum && countNum % splitNum == countNum){ if(spoutNum == 1){ return countNum; }else{ return 0; } }else if(countNum == splitNum && countNum % splitNum == 0){ return countNum/splitNum; }else if(countNum > splitNum){ if(spoutNum == 1){ int a = countNum - (countNum % splitNum); return (a / splitNum)+(countNum % splitNum); }else{ int a = countNum - (countNum % splitNum); return a / splitNum; } } return 0; } }