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

Do you need help?

Diminuire la complessita ciclomatica hw2

K
Kiltei (Michele) (590 points)
3 7 10
in HW2 obbligatorio by (590 points)
A fronte di una complessita ciclomatica di 22, ho provato a cercare un metodo per ridurla.

Seguendo alcuni consigli trovati qui sul forum ho provato a racchiudere le azioni "più utilizzate" del mio programma in funzioni.

In questo modo ho ridotto la cc ma ho raddoppiato i tempi di esecuzione.

Per cui avendo visto tramite i ranking che è possibile arrivare ad avere 3 di intricatezza e 93ms di esecuzione, volevo chiedervi qualche consiglio per provare ad avvicinarmi a questi valore.

Thanks :)
524 views
closed

2 Answers

Best answer
raponi.federico (11280 points)
3 4 21
by (11.3k points)
selected by
Se la soluzione del tuo problema è molto intricata a tal punto da avere una complessità ciclomatica così elevata evidentemente hai adottato un ragionamento poco efficiente. Nel caso in cui non volessi cambiare l'approccio ti consiglio di prestare attenzione a quante volte vengono chiamate le funzioni e se creano determinati dizionari/liste/variabili più volte e soprattutto se vengono eseguiti dei cicli molte volte.
K
Kiltei (Michele) (590 points)
3 7 10
by (590 points)
Non ho problemi a cambiare approccio, il mio obbiettivo primario era scrivere un codice che passasse tutti i test e lo fa. Ora punto a renderlo il più veloce e meno intricato possibile, quindi non avrei problemi anche a riscriverlo da 0.

Volevo dei consigli in quanto non essendo molto esperto non saprei da dove cominciare per farlo XD

In ogni caso, si utilizzo un dizionario e dei cicli che per via dei test devono iterare funzioni e controlli molte volte.
raponi.federico (11280 points)
3 4 21
by (11.3k points)
Potresti provare a creare dei cicli con condizioni differenti in modo da scorrere le liste in modo più efficente.
K
Kiltei (Michele) (590 points)
3 7 10
by (590 points)
Sinceramente non saprei, perchè questi cicli fanno già lo stretto necessario, non so tu se hai letto cosa chiede l'hw, gli unici cicli che utilizzano servono a controllare i punteggi delle lettere e con un while e un indice scorro le varie liste....
raponi.federico (11280 points)
3 4 21
by (11.3k points)
Si si io ho terminato l'homework e ho utilizzato 2 cicli. Più di questo non posso dire credo.
giordano_sannino (13650 points)
7 16 81
by (13.7k points)
cerca di vedere se fai controlli/if/iterazioni inutili
K
Kiltei (Michele) (590 points)
3 7 10
by (590 points)
Di questo me ne sono assicurato scivendo il codice iniziale, eseguo solo controlli o iterazioni necessario al funzionamento dell'algoritmo.

L'unica cosa che mi viene da pensare e provare a trovare un altro più semplice o forse cercare il modo di scrivere quelle stesse cose in modo più abbreviato...non saprei a me sembra di essere arrivato al massimo fattibile ma è evidente che non è cosi