#define NULL 0 \ /*1:*/ #line 10 "gb_sort.w" #include "gb_flip.h" /*2:*/ #line 57 "gb_sort.w" typedef struct node_struct{ long key; struct node_struct*link; }node; /*:2*//*4:*/ #line 81 "gb_sort.w" node*gb_sorted[256]; static node*alt_sorted[256]; /*:4*/ #line 12 "gb_sort.w" /*5:*/ #line 88 "gb_sort.w" void gb_linksort(l) node*l; {register int k; register node**pp; register node*p,*q; /*6:*/ #line 102 "gb_sort.w" for(pp= alt_sorted+255;pp>=alt_sorted;pp--)*pp= NULL; for(p= l;p;p= q){ k= gb_next_rand()>>23; q= p->link; p->link= alt_sorted[k]; alt_sorted[k]= p; } /*:6*/ #line 94 "gb_sort.w" ; /*7:*/ #line 112 "gb_sort.w" for(pp= gb_sorted+255;pp>=gb_sorted;pp--)*pp= NULL; for(pp= alt_sorted+255;pp>=alt_sorted;pp--) for(p= *pp;p;p= q){ k= gb_next_rand()>>23; q= p->link; p->link= gb_sorted[k]; gb_sorted[k]= p; } /*:7*/ #line 95 "gb_sort.w" ; /*8:*/ #line 123 "gb_sort.w" for(pp= alt_sorted+255;pp>=alt_sorted;pp--)*pp= NULL; for(pp= gb_sorted+255;pp>=gb_sorted;pp--) for(p= *pp;p;p= q){ k= p->key&0xff; q= p->link; p->link= alt_sorted[k]; alt_sorted[k]= p; } /*:8*/ #line 96 "gb_sort.w" ; /*9:*/ #line 138 "gb_sort.w" for(pp= gb_sorted+255;pp>=gb_sorted;pp--)*pp= NULL; for(pp= alt_sorted;ppkey>>8)&0xff; q= p->link; p->link= gb_sorted[k]; gb_sorted[k]= p; } /*:9*/ #line 97 "gb_sort.w" ; /*10:*/ #line 149 "gb_sort.w" for(pp= alt_sorted+255;pp>=alt_sorted;pp--)*pp= NULL; for(pp= gb_sorted+255;pp>=gb_sorted;pp--) for(p= *pp;p;p= q){ k= (p->key>>16)&0xff; q= p->link; p->link= alt_sorted[k]; alt_sorted[k]= p; } /*:10*/ #line 98 "gb_sort.w" ; /*11:*/ #line 165 "gb_sort.w" for(pp= gb_sorted+255;pp>=gb_sorted;pp--)*pp= NULL; for(pp= alt_sorted;ppkey>>24)&0xff; q= p->link; p->link= gb_sorted[k]; gb_sorted[k]= p; } /*:11*/ #line 99 "gb_sort.w" ; } /*:5*/ #line 13 "gb_sort.w" /*:1*/