import java.util.Arrays;

public class Sample187 {
	public static int[] countingSort(int min, int max, int[] data) {
		int[] counter = new int[max - min + 1];
		for (int i: data) {
			counter[i - min]++;
		}

		int[] result = new int[data.length];
		int index = 0;
		for (int i = 0; i < counter.length; i++) {
			for (int count = 0; count < counter[i]; count++) {
				result[index++] = i + min;
			}
		}
		return result;
	}

	public static void main(String[] args) {
		int[] sort = countingSort(-1, 10, new int[] {-1, 9, 4, 8, 9, 6, 3, 9, 5, 2});
		System.out.println(Arrays.toString(sort));
	}
}
