View Full Version : [JAVA] Ricerca su un file molto grande
Salve, devo realizzare una funzione di ricerca su un file molto grande (10MB), un filtro IP (un file dove sono memorizzati circa 250mila IP ordinati in ordine crescente). Qual'è il metodo più efficiente per trovare un ip senza caricare in memoria tutto il file? Avevo pensato ad una ricerca binaria direttamente sul file ma questo causa circa 20 accessi al file e quindi al disco per ogni ricerca, e ciò non va bene diciamo... Ho provato anche a caricare il file a pezzi in memoria sempre con una ricarca binaria voi che ne dite?
Grazie... :(
rEDTUNING
22-10-2010, 20:52
ovviamente stiamo parlando di file random e non sequenziali vero? beh penso che la cosa migliore sia caricartelo a pezzi in un buffer ed effettuare una ricerca dicotomica (o binaria) su ogni pezzo che carichi, se non trovi nulla scarichi quel buffer e lo riempi con altri record...penso che sia quello che hai detto tu con "Ho provato anche a caricare il file a pezzi in memoria sempre con una ricarca binaria"...altro non so, ora mi viene questo in mente, sicuramente è molto meglio di gestire il file direttamente
Si random... io pensavo di caricare il pezzo centrale del file, effettuare una ricerca binaria, aggiornare gli indici e caricare un altro pezzo di file, superiore o inferiore al pezzo centrale se l'ip è minore o maggiore rispettivamente... intendevi anche tu così?
rEDTUNING
25-10-2010, 14:54
si, potrebbe essere una soluzione adatta, prova ad implementarla e fammi sapere :D
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.