Algoritmos para assimilação de dados geralmente envolvem cálculos complexos que dependem de diversos fatores, como o tamanho dos espaços de estados, número de pontos da grade em questão, tamanho da janela de assimilação, etc. Frequentemente, observa-se que dois algoritmos usados para solucionar um mesmo problema podem ter eficiências diferentes, por conta de diferenças em suas implementações.
Uma maneira de se mensurar e representar a complexidade de um algoritmo é contabilizar o número de operações de ponto-flutuante (flops) necessárias para executá-lo e utilizar a notação “O-grande”.
Considere o algoritmo a seguir, implementado em uma linguagem de pseudocódigo autoexplicativa.
A complexidade desse algoritmo será
- A O (2n2).
- B O (2n2 − 1).
- C O (n2).
- D O (n).
- E O (n2 − n − 1).