Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

OTTIMIZZARE ES1 HW4

D
Daniele (640 points)
5 15 18
in Es1 by (640 points)
Il mio programma per l'es 1 non passa gli ultimi 2 test. Ho utilizzato solo insiemi al posto di liste, ma continua ad essere lento. Consigli per ottimizzarlo?
499 views

2 Answers

A
AxelPower (1510 points)
3 10 22
by (1.5k points)
Tralasciando che le informazioni fornite sono poche , ma nell'esercizio 1 la parte più onerosa non è la ricorsione , bensì il modo in cui tu immagazzina i file , ad esempio dovresti evitare di ripassare liste o , nel tuo caso insiemi , in troppi cicli , questo perchè quando le informazioni sono tante , il ciclare n volte o 3n ,4n ecc volte è sicuramente MOLTO deleterio.
Quindi ricontrolla quante volte utilizzi i cicli per accedere alle informazioni del file , ( lo dovresti fare 1 massimo 3 volte )
D
Daniele (640 points)
6 15 18
by (640 points)
Quindi dovrei ridurre il numero delle sotto-funzioni per evitare di passare come argomento di quest'ultime gli insiemi?
A
AxelPower (1510 points)
3 10 22
by (1.5k points)
No , devi evitare di usare troppe volta gli insiemi ( tipo le operazioni in cui li scorri tutti per effettuare operazioni per ogni elemento )
marco.giuliani (23860 points)
4 13 62
by (23.9k points)
Devi stare attento al flusso di dati, piuttosto che alle strutture dati di per sè.

Se iteri ogni insieme tante volte, oppure esegui tanti controlli, magari dentro ai cicli, la velocità del programma ne risentirà.

Ti consiglio di controllare queste cose, che puoi risolvere magari facendo più azioni contemporaneamente nello stesso ciclo, oppure scartando alcuni elementi a priori, per evitarne il controllo
D
Daniele (640 points)
6 15 18
by (640 points)
I cicli sono ridotti al minimo, il problema è un altro: la parte più onerosa del mio programma è quando creo gli alberi.

Utilizzo delle classi in cui tengo conto per ogni nodo della lista dei figli, e lo stesso vale per quest'ultimi tramite ricorsione.

Quando trovo i figli, elimino le coppie già trovate per risparmiare tempo, ma lo stesso non supera gli ultimi 2 test.

Che altro posso fare per ottimizzarlo?