Mi scuso per la domanda da principiante, ma sono un po 'confuso su ciò che conta esattamente come una "operazione semplice" quando si calcola la complessità temporale di un algoritmo. In particolare, perché consideriamo tutte le operazioni uguali?
Sicuramente, la divisione di due numeri molto grandi richiede più tempo rispetto all'aggiunta di uno a un numero (come in ogni iterazione di un ciclo for). La moltiplicazione, ad esempio, può consistere in un numero qualsiasi di piccole aggiunte. Quindi, invece di aggiungerli semplicemente, non dovremmo applicare un tipo di peso a ciascuna operazione a seconda del tipo di operazione (addizione, moltiplicazione, ecc.) E delle dimensioni dei numeri coinvolti?
Il mio problema è che mi viene chiesto di dimostrare che la complessità del mio algoritmo è (per alcune funzioni ) e non sono sicuro di come farlo in modo matematicamente rigoroso a causa della vaghezza intrinseca nella definizione di "semplice operazione". Quindi come potrei procedere?