package uk.ac.imperial.lsds.seep.gc14.operator; import java.util.Iterator; import java.util.List; public class QUtils { public static float medianOfSortedList(List<Float> list) { if (list.size() < 1) return 0; if (list.size() == 1) return list.get(0); float median = ((list.size() % 2) == 0) ? (list.get((int)(list.size()/2f)) + list.get((int)(list.size()/2f)-1))/2f : list.get((int)((list.size() - 1)/2f)); return median; } public static List<Float> insertIntoSortedFloatList(List<Float> list, float value, int start, int end) { if(list.isEmpty()){ list.add(value); return list; } while (start < end - 1) { int middle = (int)((start+end)/2f); if (list.get(middle) <= value) start = middle; if (list.get(middle) >= value) end = middle; } if (value < list.get(start)) list.add(start,value); else list.add(end,value); return list; } public static float[] toPrimitiveArray(List<Float> list) { float[] result = new float[list.size()]; Iterator<Float> iterator = list.iterator(); for (int i = 0; i < result.length; i++) { result[i] = iterator.next().intValue(); } return result; } }