View Single Post
Old 08-02-2007, 21:31   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Allora è semplicissimo... Fai un vettore di strutture...
Codice:
struct data 
{
   int value;
   int frequency;
};
vector<data> v;

Riempi i vari elementi di v presi dall'input e poi usi sort per ordinare per valore...

sort(v.begin(), v.end(), sortByValue);

Dove sortByValue è:
Codice:
bool sortByValue(data elem1, data elem2)
{
    return elem1.value > elem2.value;
}
Mentre per ordinare per frequenza dopo che hai trovato la mediana:

sort(v.begin(), v.end(), sortByFrequency);

Dove sortByFrequency è:
Codice:
bool sortByFrequency(data elem1, data elem2)
{
    return elem1.frequency > elem2.frequency;
}
L'elemento con frequenza massima è la moda.

PS: l'elemento con frequenza massima lo potresti anche rilevare durante l'inserimento. Ogni volta che inserisci un elementi guardi se la sua frequenza è maggiore di quella dell'elemento con la frequenza più alta, in caso positivo aggiorni con il nuovo elemento
cionci è offline   Rispondi citando il messaggio o parte di esso