[C++] Trovare la moda di una sequenza di n numeri

fafnir39
Salve a tutti, ho alcune difficoltà nel realizzare un programma in C++ che trovi la moda di una successione di n numeri (interi positivi) e mi sarebbe utile avere un algoritmo già pronto da dover solo "tradurre" in codice C++.
Sapreste dirmene uno?

Grazie.

Risposte
onlyReferee
Ciao fafnir39 :!:
Puoi sfruttare il già esistente algoritmo di ordinamento counting sort (il cui codice lo trovi tranquillamente in rete) in cui basta che ometti la parte in cui viene eseguito l'ordinamento. Una volta determinato il vettore delle occorrenze è sufficiente infatti determinare l'elemento più frequente con una semplice scansione lineare dello stesso e stop...

vict85
Come lo calcoleresti se dovessi trovarla a mano?

Comunque a rigore la moda non è necessariamente unica.

onlyReferee

vict85
Io a mano faccio la tabella. Volendo potresti usare anche una double linked list per la tabella (ordinandola mentre inserisci i valori). Non so quale sia la migliore scelta in termini di performance e memoria (immagino dipenda dai dati). Comunque rimane la questione legata al fatto che più elementi potrebbero avere la stessa frequenza.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.