#include <stdio.h>
void group_elements(int arr[], int len) {
int frequency[10] = { 0 };
for (int i = 0; i < len; i++) {
frequency[arr[i]]++;
printf("frequency[arr[%d]] = %d arr[%d] = %d\n", i, frequency[arr[i]], i, arr[i]);
}
for (int i = 0; i < len; i++) {
if (frequency[arr[i]] != 0) { // -1 should not be in array
int total_frequency = frequency[arr[i]];
while (total_frequency--) {
printf("%d ", arr[i]);
}
frequency[arr[i]] = 0;
}
}
}
int main(void) {
int arr[] = { 8, 3, 7, 8, 2, 5, 8, 5, 1, 9, 8, 1, 7 };
group_elements(arr, sizeof(arr) / sizeof(arr[0]));
return 0;
}
/*
run:
frequency[arr[0]] = 1 arr[0] = 8
frequency[arr[1]] = 1 arr[1] = 3
frequency[arr[2]] = 1 arr[2] = 7
frequency[arr[3]] = 2 arr[3] = 8
frequency[arr[4]] = 1 arr[4] = 2
frequency[arr[5]] = 1 arr[5] = 5
frequency[arr[6]] = 3 arr[6] = 8
frequency[arr[7]] = 2 arr[7] = 5
frequency[arr[8]] = 1 arr[8] = 1
frequency[arr[9]] = 1 arr[9] = 9
frequency[arr[10]] = 4 arr[10] = 8
frequency[arr[11]] = 2 arr[11] = 1
frequency[arr[12]] = 2 arr[12] = 7
8 8 8 8 3 7 7 2 5 5 1 1 9
*/