La "funzione utente" serve a confrontare a coppie tutti gli elementi dell'array da ordinare... precede ("vince") l'elemento che, a seguito delle operazioni eseguite all'interno della funzione, restituisce un risultato "vero" ovvero un numero positivo, una stringa non nulla, un booleano true, ecc.
Scusa la spiegazione semplicistica e imperfetta, fai qualche esperimento per provare.
ciao