Calcolo della complessità di NPath

1

Sto provando a calcolare la complessità di NPath all'interno di una funzione, ma non sono sicuro di quali parti conto.

La mia comprensione è che sommerà:

  • Se
  • Else
  • Altrimenti se
  • Cambia
  • Caso
  • default
  • Do
  • Mentre

È corretto? O mi sto perdendo qualcosa?

    
posta James 29.08.2014 - 17:26
fonte

2 risposte

2

Devi anche includere operatori come && || e ? : , poiché questi stessi possono produrre percorsi di esecuzione alternativi.

    
risposta data 03.09.2014 - 14:42
fonte
1

La complessità di NPath è la somma delle possibili rotte attraverso il tuo codice (ignorando i cicli).

La complessità dipende quindi dalla struttura del tuo codice piuttosto che dai token:

if (x) {
   if (y) {
     // Do something
   } else {
    // Do something else
   }
} else {
  // Do something even more else
}

Ha 3 possibili percorsi che possono essere eseguiti, in base ai valori di x e y.

Man mano che nidifichi più profondamente le strutture di controllo, il numero di possibili percorsi aumenta esponenzialmente.

Sfiorare questo codice: link darà un'idea della complessità del calcolo della complessità: -)

    
risposta data 03.09.2014 - 07:09
fonte

Leggi altre domande sui tag