#include "Item.h"          /* IE */
#include "Array.h"         /* IE */
#define maxN 10000
int IEtrace = 1;
Item aux[maxN];

/* include code */
void radixLSD(Item a[], int l, int r)
  {
    int i, j, w, count[R+1]; 
    for (w = bytesword-1; w >= 0; w--)
      {
if (IEtrace) show(a, l, r);
        for (j = 0; j < R; j++) count[j] = 0;
        for (i = l; i <= r; i++) 
          count[digit(a[i], w) + 1]++;
        for (j = 1; j < R; j++) 
          count[j] += count[j-1];
        for (i = l; i <= r; i++) 
          aux[count[digit(a[i], w)]++] = a[i];
        for (i = l; i <= r; i++) a[i] = aux[i];
      }
  } 
/* end code */

void sort(Item a[], int l, int r)
  { 
    radixLSD(a, l, r);
    insertion(a, l, r);
  }

