Mi sono documentato su siti di varie università sulle complessità dei due algoritmi, e sembra essere dimostrato che msort è piu efficiente di qsort.
Per la precisione, sembra che msort abbia complessita O(n logn) mentre per il qsort dovrebbe valere O(n*n) (il tutto considerato nel caso peggiore).
Ora, che io sappia, in math.h dei due algoritmi è implementato solo il qsort.
Dopo varie ricerche ho trovato questa implementazione del msort che sembra abbastanza snella e congruente con l'algoritmo
Allora ho testato i due algoritmi con vettori generati casualmente di pari lunghezza ed i risultati vanno nella direzione opposta a quella indicata dai principi teorici: qsort sembra ordinare il vettore in un tempo inferiore alla metà di quanto impiega questa implementazione di msort.
Le spiegazioni che mi sono dato di questo fatto sono diverse:
1. il qsort definito in math.h in realtà non è un vero e proprio quick sort ma un algoritmo piu prestante
2. l'implementazione di msort che ho utilizzato non è una buona implementazione (tuttavia, è la migliore che sono riuscito a procurarmi su internet)
Avete qualche considerazione illuminante in proposito?