Diminuire la complessita ciclomatica hw2

K
Kiltei (Michele) (590 points)
2 7 10
asked Oct 28, 2020 in HW2 obbligatorio by Kiltei (Michele) (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 :)
259 views

2 Answers

Best answer
raponi.federico (11240 points)
2 4 21
answered Oct 28, 2020 by raponi.federico (11,240 points)
selected Nov 1, 2020 by Kiltei (Michele)
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)
2 7 10
commented Oct 28, 2020 by Kiltei (Michele) (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 (11240 points)
2 4 21
commented Oct 28, 2020 by raponi.federico (11,240 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)
2 7 10
commented Oct 28, 2020 by Kiltei (Michele) (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 (11240 points)
2 4 21
commented Oct 28, 2020 by raponi.federico (11,240 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
answered Oct 28, 2020 by giordano_sannino (13,650 points)
cerca di vedere se fai controlli/if/iterazioni inutili
K
Kiltei (Michele) (590 points)
2 7 10
commented Oct 28, 2020 by Kiltei (Michele) (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