#include <stdio.h>
void counting_sort(const int arr[], int size, int target[], int k) {
int count[k + 1];
for (int i = 0; i <= k; ++i) {
count[i] = 0;
}
for (int i = 0; i < size; ++i) {
count[arr[i]]++;
}
for (int i = 1; i <= k; ++i) {
count[i] += count[i - 1];
}
for (int i = size - 1; i >= 0; --i) {
target[count[arr[i]] - 1] = arr[i];
count[arr[i]]--;
}
}
int main() {
int arr[] = {3, 2, 9, 4, 1}, size = sizeof(arr) / sizeof(int), target[size], k = 9;
counting_sort(arr, size, target, k);
for (int i = 0; i < size; ++i) {
printf("%d\n", target[i]);
}
return 0;
}