#include #include #define MAX 255 struct freq {int ch;int count;}; struct freq * f[MAX]; int fp; incFreq(int ch) { int i; i=0; while(ich==ch) { f[i]->count = f[i]->count+1; return; } else i = i+1; if(fp==MAX) { printf("more than %d different characters\n",MAX); exit(0); } f[fp] = (struct freq *)malloc(sizeof(struct freq)); f[fp]->ch = ch; f[fp]->count = 1; fp = fp+1; } showFreq() { int i; i = 0; while(ich,f[i]->count); i = i+1; } printf("\n"); } swap(struct freq * a[],int i,int j) { struct freq *t; t = a[i]; a[i] = a[j]; a[j] = t; } int partition(struct freq * a[],int l,int r) { int i,j,p; i = l; j = r; p = a[(i+j)/2]->count; while(i<=j) { while(a[i]->countcount>p) j = j-1; if(i<=j) { swap(a,i,j); i = i+1; j = j-1; } } return i; } quicksort(struct freq * a[],int l,int r) { int p; if(l