Grazie del codice.. ma ora mi rendo conto che non penso possa
funzionare nel mio caso..
È colpa mia... prima, per semplificare un po' il problema, ho detto
che avevo un array di integer (pensavo non cambiasse niente), mentre
in realtà ho un array di stringhe.
Ho bisogno trovare il numero di ripetizioni delle stringhe che
vengono ripetute più di una volta.
Per ora ho implementato le operazioni > e < sulle stringhe (posso
vedere se una stringha viene prima o dopo in ordine alfabetico),
penso potrebbero servire.
Però il metodo di costruire un istogramma non è più efficiente in
questo caso.
Se ad esempio avessi solo 10 stringhe di 6 caratteri dovrei costruire
un istogramma con tutti i bins per tutte le stringhe da 0 a 6
caratteri con un alfabeto di 26 caratteri, quindi avrei un tempo di
esecuzione esponenziale O(e^n)
Ribadisco che è colpa mia che non ti ho spiegato esattamente la mia
situazione..
Altri suggerimenti?
Grazie,
Matteo
On 6-mag-06, at 12:50, Alessandro wrote:
Questa ad esempio dovrebbe fare al caso tuo.
Scusa se è in C comunque mi sembra commentato bene.
http://castore.phys.uniroma1.it/KR/Teach//LabCal/AA0102/program6.html
HTH
ale
Il giorno 06/mag/06, alle 12:39, Alessandro ha scritto:
Ciao Matteo,
al momento non mi viene in mente dove indirizzarti, ma quello
di cui hai bisogno è un qualunque algoritmo che calcoli
l'istogramma. Fai una ricerca e vedrai che troverai molti
algoritmi già precotti da utilizzare. Vanno benissimo quelli per
l'analisi di immagini ad esempio.
ale
Il giorno 06/mag/06, alle 12:27, Matteo Cortonesi ha scritto:
Ciao a tutti,
Ho un problemino con le arrays.
Ho un array contenente diversi (tanti) numeri (integer).
Avrei bisogno di sapere tutti gli elementi che si ripetono
nell'array, compreso il numero di ripetizioni.
Per esempio:
Se l'array fosse: 1,2,5,2,3,6,8,3,1,3,3
dovrei ricevere:
1: due volte
2: due volte
3: quattro volte
Ho pensato ad un algoritmo molto semplice (fare uno scanning
dell'array e quando trovo un elemento lo elimino, poi rifaccio lo
scanning e se lo ritrovo aumento il contatore di ripetizioni)...
solo che ha un tempo di esecuzione dell'ordine di O(n^2)... il
che è pessimo..
Se vi vengono in mente idee migliori sarei contento di vederle :)
Grazie
Matteo
|