[Python] Algoritmo in CSV

Andrea Ambu andreambu a gmail.com
Ven 3 Set 2010 12:44:45 CEST


2010/9/2 Vittorio Zuccala' <vittorio.zuccala a gmail.com>:
> Ecco: il mio problema è che vengono effettuati 200*2.000.000 di IF e la cosa
> non mi piace molto.
> Qualcuno ha un consiglio per ottimizzare?
>


Se un array non e` ordinato trovare il massimo costa O(n) in tempo e
O(1) in spazio. Le colonne del tuo file immagino non siano ordinate
per lunghezza perche` altrimenti non staresti facendo tutto questo
lavoro.

In tempo costera` comunque almeno O(righe*colonne) perche` devi
guardare tutti gli elementi e in spazio O(colonne) perche` devi
salvarti i massimi correnti.

Tra l'altro O(righe*colonne) e` il numero di volte che viene chiamata
sia l'if che la funzione lunghezza, che molto probabilmente e` piu`
onerosa dell'if.

Il cvs lo prepari tu in una parte del tuo progetto? Forse sarebbe
meglio mettere tutto in un database che conserva i dati in maniera
piu` furba del cvs come diceva Nicola, pero` farlo solo per vedere i
massimi non serve a niente perche` dovresti comunque leggerti tutti i
righe*colonne dati e quindi metterci il db di mezzo rallenterebbe
soltanto le cose.

-- 
Andrea


Maggiori informazioni sulla lista Python