

Note to BDS C Users Who Use the "qsort" Library Function:
	(From Leor Zolman, Feb 1982)


The low-level swap function that qsort uses, called "_swp", is pretty
inefficient. A version that works much more quickly is given below, but
note that this method necessarily requires that some upper maximum be set
on the size ("width") of a single object of the class being sorted. The
new _swp function is as follows:


-------------------------------------------------------------------------------
#define MAX_WIDTH 1000		/* largest allowable width */

_swp(width, a, b);
{
	char swapbuf[MAX_WIDTH];
	movmem(a,swapbuf,width);	/* simply swap through the temporary */
	movmem(b,a,width);		/* buffer allocated on the stack     */
	movmem(swapbuf,b,width);
}

-------------------------------------------------------------------------------
To install this modification, replace the _swp function in STDLIB1.C with
this version, recompile STDLIB1.C, and use the librarian (CLIB) to delete
the old version of "_swp" in DEFF.CRL and replace it with the new one from
STDLIB1.CRL. And make sure that the MAX_WIDTH define is set so that you're
never likely to want to sort object of larger size. If you DO, remember to
go back and change the define....
	-leor
