implementazione Quicksort in C?
Domanda
Mi piace molto la funzione qsort
in C. E 'così facile da usare e mi permette di procrastinare l'apprendimento C ++ tipi di modello. Ho alcune domande su questo:
- è l'algoritmo utilizzato sempre un Quicksort o è compilatore-implementazione-dipendente?
- Consiglieresti di utilizzare questa funzione o c'è un reale vantaggio per i modelli?
- Ci sono delle cose che occorre fare attenzione ai problemi di sicurezza astenersi / segfaults?
Soluzione
è l'algoritmo utilizzato sempre un Quicksort o è compilatore-implementazione-dipendente?
E 'a carico di attuazione.
Consiglieresti di utilizzare questa funzione o c'è un reale vantaggio per i modelli?
C non ha modelli. Se avete bisogno di una funzione di ordinamento generica in C, allora qsort
è una buona scelta.
Se avete intenzione di utilizzare C ++, quindi si dovrebbe utilizzare std::sort
, che è molto più facile da usare in modo corretto e dà sicurezza tipo.
Ci sono delle cose che occorre fare attenzione ai problemi di sicurezza astenersi / segfaults?
Se si utilizza la funzione in modo improprio (ad esempio, se si passa parametri non corretti o se la funzione di confronto ha bug in esso), quindi il programma potrebbe anche bloccarsi (o altrimenti potrebbe eseguire in modo non corretto). Naturalmente, questo non è specifico per qsort
; questo è vero per niente utilizzato in un programma.