hschumann2/TempleOS-Source-Code
0847
1 2#define RADIX 2563#define N 164 5U8 a[N];6 7class Lst8{9 Lst *next;10 U8 *a;11} l[N],*r[RADIX];12 13U0 DumpIn()14{15 I64 i;16 "$RED$\n\nInput$FG$\n";17 for (i=0;i<N;i++)18 "%d:%d\n",i,a[i];19}20 21U0 DumpOut()22{23 I64 i,j=0;24 Lst *tmpl;25 "$RED$\n\nOutput$FG$\n";26 for (i=0;i<RADIX;i++) {27 tmpl=r[i];28 while (tmpl) {29 "%d:%d\n",j++,*tmpl->a;30 tmpl=tmpl->next;31 }32 }33}34 35U0 Init()36{37 I64 i;38 MemSet(r,0,sizeof(r));39 for (i=0;i<N;i++) {40 a[i]=RandU16&255;41 l[i].next=NULL;42 l[i].a=&a[i];43 }44}45 46U0 Sort()47{48 I64 i;49 for (i=0;i<N;i++) {50 l[i].next=r[*l[i].a];51 r[*l[i].a]=&l[i];52 }53}54 55U0 RadixSort()56{57 Init;58 DumpIn;59 Sort;60 DumpOut;61}62 63RadixSort;64 