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

Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2023-24 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2023-24 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

Intricatezza o Tempo di Esecuzione? Questo è il problema...

Auron (15880 points)
51 126 194
in Programmare in Python by (15.9k points)

Al di là della citazione lettararia che ci sta sempre bene... :P
Mi piacerebbe che a questa domanda rispondesse il professore per un semplice motivo, cioè che immagino che un programmatore con esperienza pluridecennale possa rispondere meglio di un qualsiasi studente, considerando il fatto che magari sa in che direzione va il mondo delle richieste di programmi...

Il dubbio mi è venuto lavorando al primo esercizio dell'homework... Ho riscontrato di avere un tempo di esecuzione che, credo, sia molto positivo, con un livello di intricatezza per cui non ho parametri di riferimento e che quindi non so se sia buono o meno... Certo è che, per ridurre il tempo di esecuzione, ho dovuto perdere un pochino in termine di complessità ciclomatica... Quindi, per generalizzare:

E' preferibile ridurre al massimo possibile il tempo di esecuzione, pur aumentando in maniera più o meno netta l'intricatezza del programma, o invece si cerca sempre di tenere la strada del programma meno complesso, pur rimettendoci in termini di velocità di esecuzione?

494 views
closed

1 Answer

Best answer
andrea.sterbini (207940 points)
756 1270 2377
by (208k points)
selected by
È meglio ridurre la complessità ciclomatica quando le valutazioni (della utility radon)  vanno da 'D' a F'.
Spezzando l'algoritmo in funzioni più piccole si ottiene codice molto più leggibile.

Per la nostra "hall of fame" prende il premio il quarto con intricatezza minore degli esercizi corretti (leggi "che passano tutti i test"). Quindi non è necessario sacrificare efficienza x intricatezza. (vedi ad es. i miei punteggi)
Auron (15880 points)
51 126 194
by (15.9k points)
Ottimo, la ringrazio per il chiarimento... alla luce di questo mi ritengo abbastanza soddisfatto dei miei risultati finora :)
Tenterò comunque di ottimizzare ulteriormente, se possibile :)
Auron (15880 points)
51 126 194
by (15.9k points)
Può dirci come utilizzare questa utility per la complessità ciclomatica? In modo da poter verificare in ogni momento quanto il nostro codice sia intricato e fare le dovute considerazioni :)