Qual é o significado de


Respostas:


33

Você está certo. Observe que o termo abusa levemente da notação big-O clássica , definida para funções em uma variável. No entanto, existe uma extensão natural para várias variáveis.O(n+m)

Simplificando, como você pode deduzir que e são limites superiores assintóticos equivalentes.

12(m+n)max{m,n}m+n2max{m,n},
O(n+m)O(max{m,n})

Por outro lado, é diferente de , pois se você definir , obteráO(n+m)O(min{n,m})n=2m

O(2m+m)=O(2m)O(m)=O(min{2m,m}).

3
Eu acho digno de nota que eles escrevam em abstrato: "Mostramos que é impossível definir a notação big-O para funções em mais de uma variável, de uma maneira que implique as propriedades comumente usadas na análise de algoritmos. Também demonstramos que definições comuns não implica essas propriedades, mesmo que as funções da notação big-O sejam restritas a serem estritamente não decrescentes ".
Raphael

4
Como seguimento ao meu comentário acima, o recente artigo A definição geral do O-notação para análise de algoritmos por K. Rutanen (2015) faz show de como definir a notação O significativo para conjuntos gerais, incluindo . N2
Raphael

25

Acredite ou não, parece (na minha experiência) que muitos algoritmos que as pessoas realmente não pensaram sobre o que a grande notação O significa formalmente e, quando perguntados sobre isso, você pode obter várias respostas diferentes. Algumas questões são discutidas no artigo Sobre notação assintótica com múltiplas variáveis, de Rodney R. Howell.

Curiosamente, também parece que a maioria dos cursos introdutórios de algoritmos passa muito tempo sendo formal sobre a notação O grande com uma única variável e, nas próximas semanas, felizmente usa a notação para algoritmos gráficos com várias variáveis ​​de maneira casual, sem discutir o que o notação realmente significa.


O link na minha resposta se refere ao artigo de Howell, que é realmente um bom tratamento para essa questão.
A.Schulz

1
@ A.Schulz: Na verdade, eu estava digitando minha resposta simultaneamente para você.
Kristoffer Arnsfelt Hansen

1
Eu sou um defensor de ter cuidado com os termos do Landau, por isso concordo, mas isso contém muito discurso retórico para uma boa resposta.
Raphael

4
@Raphael: A resposta não pretende ser um discurso retórico, mas talvez pudesse ter sido formulada com mais precisão. A questão é, basicamente, qual é o significado de O grande com mais de um parâmetro. A resposta é que isso deve significar o que há de consenso na comunidade de algoritmos, o que está sendo ensinado nos cursos de algoritmos etc. O que quero dizer é que aparentemente não existe um consenso sobre o que a notação significa precisamente.
Kristoffer Arnsfelt Hansen
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.