Re: qsort again

Florian Weimer <fw@deneb.enyo.de>

From: Florian Weimer <fw@deneb.enyo.de>
To: Neil Conway <neilc@samurai.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Gary Doades <gpd@gpdnet.co.uk>, pgsql-performance@postgresql.org, pgsql-hackers@postgresql.org
Date: 2006-02-16T12:10:48Z
Lists: pgsql-hackers, pgsql-performance
* Neil Conway:

> On Wed, 2006-02-15 at 18:28 -0500, Tom Lane wrote:
>> It seems clear that our qsort.c is doing a pretty awful job of picking
>> qsort pivots, while glibc is mostly managing not to make that mistake.
>> I haven't looked at the glibc code yet to see what they are doing
>> differently.
>
> glibc qsort is actually merge sort, so I'm not surprised it avoids this
> problem.

qsort also performs twice as many key comparisons as the theoretical
minimum.  If key comparison is not very cheap, other schemes (like
heapsort, for example) are more attractive.