generell kann man sagen, dass quick sort eigentlich das schnellste sortierverfahren ist, das existiert.
wie gesagt: generell.
aus diesem grund ist es auch in der c std lib gelandet.
welches verfahren für einen selbst das bessere ist, kann man ganz leicht rausfinden, in dem man die zeit misst, die der sortier-algorithmus braucht. (unter win32: timeGetTime).
sicherlich kann man sich einige arbeit sparen, wenn man von vornherein weiss, dass man nur 20 bytes sortieren. bubble sort ist da schnell runtergetippt.
ich würde eine sortier-funktion folgendermassen aussehen lassen (funktionsname natürlich nur als beispiel):
void HeapSort (void* InputBuffer, void* OutputBuffer, long BufferSize)