Depende do contexto.
"Corrigindo um erro de desempenho quadrático em tempo de execução" é normalmente o que eu vejo. No entanto, se isso merece correção (uma alteração de código) depende do contexto.
Lembre-se de que os bancos de dados fornecem muitas ferramentas para melhorar a complexidade do tempo. Por exemplo, para obter os N principais resultados de um banco de dados, basta dizer. Ao converter kludge ineficiente em chamada otimizada integrada, a explicação parece supérflua.
O motivo pelo qual considero que um algoritmo com tempo de execução quadrático merece uma revisão de código (discussão) não é tanto porque é lento (lento é relativo; quadrático é rápido quando comparado com exponencial), mas porque a intuição humana (como seus clientes ou colegas programadores) são naturalmente desconfortáveis com uma funcionalidade de software que se afasta muito do tempo de execução linear, devido à mistura de expectativas da vida cotidiana.
Muitas reclamações de clientes sobre desempenho de software se enquadram nessas duas categorias:
Todo o sistema (software e hardware) foi especificado com base no uso estimado. Na semana passada, tudo corre bem, uma certa funcionalidade levou menos de 5 segundos. Nesta semana, após a instalação de uma atualização, a mesma funcionalidade leva mais de 1 minuto.
- Esta é uma comparação com um desempenho previamente comparado. O cliente mantém o desempenho futuro em uma escala absoluta de escala humana (de segundos a minutos).
Enviei 100 trabalhos para o sistema. Por que está demorando 400 vezes o tempo de processamento, em comparação com o tempo necessário para um único trabalho?
- O cliente espera que o tempo de processamento seja linear. De fato, o cliente não pode entender ou aceitar a existência de tarefas mais lentas que lineares.
Por esse motivo, um cliente considerará o tempo de execução um erro se ambos forem verdadeiros:
- Mais lento que linear
- Perceptível (isto é, está dentro do intervalo de tempo humano (mais que segundos ou minutos), considerando os tamanhos de tarefas típicos)
Argumentos legítimos que explicam que um algoritmo de tempo de execução quadrático não representa um problema (isto é, não merece uma alteração de código):
- O tamanho da tarefa geralmente tratada por essa função de tempo de execução quadrático é um pouco limitado
- Dada a faixa de tamanho típico, o tempo de execução real (absoluto) ainda é pequeno o suficiente para ser descartado
- Se um usuário realmente tentar enviar uma tarefa que seja grande o suficiente para ser perceptível, ele receberá uma mensagem avisando sobre o longo tempo de execução
- Os usuários do sistema são todos especialistas, portanto, eles sabem o que estão fazendo. Por exemplo, os usuários de uma API devem ter lido as letras pequenas na documentação da API.
Muitos algoritmos úteis para o desenvolvimento típico de aplicativos são, de fato, mais lentos que lineares (principalmente O (N log N), como na classificação), portanto, softwares em larga escala tentarão solucionar isso, classificando apenas a parte relevante do dados ou use técnicas de filtragem de histograma (estatística) que obtêm efeito semelhante.
Isso se aplica aos clientes de software, mas se você considerar que os usuários de uma biblioteca de software ou função de API também são "clientes", a resposta ainda será aplicada.