Desculpas pela pergunta do novato, mas estou um pouco confuso sobre o que exatamente conta como uma "operação simples" ao calcular a complexidade de tempo de um algoritmo. Em particular, por que consideramos todas as operações iguais?
Certamente, dividir dois números muito grandes consome mais tempo do que adicionar um a um número (como em cada iteração de um loop for). A multiplicação, por exemplo, pode consistir em qualquer número de pequenas adições. Então, em vez de apenas adicioná-los, não deveríamos aplicar algum tipo de peso a cada operação, dependendo do tipo de operação (adição, multiplicação, etc.) e do tamanho dos números envolvidos?
Meu problema é que me pedem para provar que a complexidade do meu algoritmo é (para alguma função ) e não tenho certeza de como fazer isso de maneira matematicamente rigorosa devido à imprecisão inerente na definição de "operação simples". Então, como eu iria fazer isso?