#include <algorithm>
#include <iostream>

void insertion_sort(int* ini, int* fin) {
   for (int* p = ini; p < fin; ++p) {
      int* q = p;
      while (q > ini && *(q - 1) > *q) {
         std::swap(*(q - 1), *q);
         --q;
      }
   }
}

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