rendered paste bodyimport java.util.Map;import java.util.TreeMap;public class Test { private static final int MAX_PRIO = 3; private static boolean[] toogle= new boolean[MAX_PRIO+1]; private static Map<Integer,Integer> proc=new TreeMap<Integer,Integer>(); private static boolean schedule(int prio){ if(!proc.containsKey(prio)||proc.get(prio)==0)return false; toogle[prio]=!toogle[prio]; boolean x=true; if(!toogle[prio]||proc.get(prio)==0){ x=!schedule(prio+1); } if(x){ System.out.print(prio+" "); proc.put(prio,proc.get(prio)-1); } return true; } /** * @param args: 4 prozesse der priorität 2, 3 der prio 1, 1 der prio 0, 0 */ public static void main(String[] args) { //prio,anzahl proc.put(0,4); proc.put(1,2); proc.put(2,4); proc.put(3,2); scosusMultiplikatording(); int y=calcSum(); for(int i=0;i<y;i++)schedule(0); } private static void scosusMultiplikatording(){ for(int prio=0;prio<MAX_PRIO;prio++){ if(proc.containsKey(prio)){ int z = proc.get(prio); z=(int) (z*Math.pow(2,MAX_PRIO-prio)); proc.put(prio,z); } } } private static int calcSum(){ int x=0; for(int i=0;i<=MAX_PRIO;i++){ if(proc.containsKey(i)){ x+=proc.get(i); } } return x; }}