/* sort uses the comparison function (third parameter) to compare two items.  
   If it returns a NON-POSITIVE number then it keeps comparing the top one 
   with the others down the line until it gets to the correct place to 
   insert the top one, the others get shuffled up and it gets inserted. */

/* For smallest first do 2nd-1st in compare, for largest first do 
   1st-2nd. */

/*   This implementation performs a shell sort using the gaps 
     recommended in Knuth's Sorting and Searching (Second edition).
*/

void sort(void **,                   /* An array of pointers to */
	                             /* data structures to be sorted */
	  long,                      /* Number of elements in array */
	  double (*)(void *,void *)  /* Pointer to comparison */
	  );                         /* function */
