4 * Ullrich von Bassewitz, 09.12.1998
13 static void QuickSort (register unsigned char* Base, int Lo, int Hi,
15 int (*Compare)(const void*, const void*))
16 /* Internal recursive function. Works with ints, but this shouldn't be
27 while (I <= J && Compare (Base + Lo, Base + I) >= 0) {
30 while (I <= J && Compare (Base + Lo, Base + J) < 0) {
34 _swap (Base + I, Base + J, Size);
40 _swap (Base + J, Base + Lo, Size);
42 if (((unsigned) J) * 2 > (Hi + Lo)) {
43 QuickSort (Base, J + Size, Hi, Size, Compare);
46 QuickSort (Base, Lo, J - Size, Size, Compare);
54 void __fastcall__ qsort (void* base, size_t nmemb, size_t size,
55 int (*compare)(const void*, const void*))
56 /* Quicksort implementation */
59 QuickSort (base, 0, (nmemb-1) * size, size, compare);