47void qsort(
void* base,
size_t nmemb,
size_t size,
int (*compar)(
const void*,
const void*))
52 char* base_ = (
char*)base;
53 char* limit = base_ + nmemb * size;
58 if ((
size_t)(limit - base_) > thresh)
68 memswp(((((
size_t)(limit - base_)) / size) / 2) * size + base_, base_, size);
75 if (compar(base_, j) > 0)
80 if (compar(i, base_) > 0)
92 }
while (compar(i, base_) < 0);
98 }
while (compar(j, base_) > 0);
114 if (j - base_ > limit - i)
129 for (j = base_, i = j + size; i < limit; j = i, i += size)
131 for (; compar(j, j + size) > 0; j -= size)
133 memswp(j, j + size, size);
142 if (stackptr !=
stack)
void qsort(void *base, size_t nmemb, size_t size, int(*compar)(const void *, const void *))