Listing 2

/* test driver for iqsort */
/* do not use -02 or higher with Sun C */

#include <stdio.h>

#define NSIZE 1000
#define IA 171
#define IC 11213

void iqsort();

main()
{
#ifndef __STDC__
   unsigned int fx;
#else
   unsigned short fx;
#endif
   unsigned int a[NSIZE], *indx[NSIZE+1];
   unsigned int i, j;
   for( i = 0; i < NSIZE; ++i) /* not a serious random number generator */
      a[i] = (fx = fx * IA + IC);

   for( i=1; i <= NSIZE / 12; ++i)
   {
      printf("\n");
      for(j = 1; j <= 12; ++j}
         printf("%6u", a[12 * (i - 1) + j - 1]);
    }

   iqsort(NSIZE, &a[-1], &indx[-1]); /* expects 1 based arrays */
   printf("\nSorted array:\n");
   for( i=1; i <= NSIZE / 12; ++i)
   {
      printf ("\n");
      for(j = 1; j <= 12; ++j)
         printf("%6u", *indx[12 * (i-1) + j - 1]);
   }
}