A volte è facile identificare la complessità temporale di un algoritmo che sto esaminando attentamente. Gli algoritmi con due loop nidificati di sono ovviamente . Gli algoritmi che esplorano tutte le possibili combinazioni di gruppi di due valori sono ovviamenteN 2 N 2 N .
Tuttavia non so come "individuare" un algoritmo con complessità . Un'implementazione ricorsiva di mergesort, per esempio, è una. Quali sono le caratteristiche comuni di mergesort o altroΘ ( N log N ) algoritmi che potrebbero darmi un indizio se ne analizzassi uno?
Sono sicuro che esiste più di un modo in cui un algoritmo può avere una complessità di , quindi tutte le risposte sono apprezzate. A proposito, sto cercando caratteristiche generali e suggerimenti, non prove rigorose.