16/12/10 23:23
sigturk
salve
ho un progetto da fare a fini didattici per l'università in cui mi viene richiesto di:
passato il path di una cartella contenente files di testo, cercare una parola specificata dall'utente da input. Il tutto in ambiente windows.
Essendo un progetto per algoritmi e strutture dati mi viene ovviamente richiesto di effettuare la ricerca in modo estremamente efficiente.
La mia idea era quella di :
creare una lista in cui ogni nodo memorizza il nome del file e una struttura dati in cui caricare tutte le parole contenute nel file preso in analisi.
come struttura vorrei usare un albero binario cosi da avere ricerche nell'ordine di O(log n), e ogni nodo dell'albero deve contenere un codice hash ottenuto dalla parola che considero di volta in volta.
ora il problema è che non so come impostare una funzione hash in grado di non generare collisioni, o il minimo possibile.
quindi avrei bisogno di un bel metodo hash, non il codice ma semplicemente le linee guida o pseudocodice che dir si voglia, e se qualcuno ha un'idea migliore per fare il tutto mi farebbe molto piacere discuterne.
Vi ringrazio anticipatamente.
ho un progetto da fare a fini didattici per l'università in cui mi viene richiesto di:
passato il path di una cartella contenente files di testo, cercare una parola specificata dall'utente da input. Il tutto in ambiente windows.
Essendo un progetto per algoritmi e strutture dati mi viene ovviamente richiesto di effettuare la ricerca in modo estremamente efficiente.
La mia idea era quella di :
creare una lista in cui ogni nodo memorizza il nome del file e una struttura dati in cui caricare tutte le parole contenute nel file preso in analisi.
come struttura vorrei usare un albero binario cosi da avere ricerche nell'ordine di O(log n), e ogni nodo dell'albero deve contenere un codice hash ottenuto dalla parola che considero di volta in volta.
ora il problema è che non so come impostare una funzione hash in grado di non generare collisioni, o il minimo possibile.
quindi avrei bisogno di un bel metodo hash, non il codice ma semplicemente le linee guida o pseudocodice che dir si voglia, e se qualcuno ha un'idea migliore per fare il tutto mi farebbe molto piacere discuterne.
Vi ringrazio anticipatamente.
aaa