#include <iostream>

void counting_sort(int* ini, int* fin) {
   int frec[10] = { };     // suponer que los elementos a ordenar son enteros de 0 a 9
   for (int* p = ini; p < fin; ++p) {
      frec[*p] += 1;
   }
   for (int i = 0; i < 10; ++i) {
      for (int j = 0; j < frec[i]; ++j, ++ini) {
         *ini = i;
      }
   }
}

int main( ) {
   int a[10] = { 2, 7, 0, 9, 5, 3, 9, 1, 4, 9 };
   counting_sort(&a[0], &a[0] + 10);
   for (int i = 0; i < 10; ++i) {
      std::cout << a[i] << " ";
   }
}
