int GroupOfNumbers::median_of_median_of_5(int left, int right) { GroupOfNumbers medians(0, 0, 0); for(int i = left; i + 5 <= right; i+=5) { medians.add(linearSelect(i, i + 4, 3)); } return medians.linearSelect(0, medians._total, medians._total/2); }