Know Thy Complexities! (Português)

Hi there! Esta página web cobre o espaço e o tempo das complexidades Big-O de algoritmos comuns usados na Informática. Ao preparar-me para entrevistas técnicas no passado, dei por mim a passar horas a rastejar pela Internet reunindo as melhores, médias e piores complexidades de algoritmos de pesquisa e classificação para que eu não ficasse perplexo quando me perguntassem sobre eles. Ao longo dos últimos anos, entrevistei em várias empresas de ponta do Vale do Silício, e também algumas empresas maiores, como o Google, Facebook, Yahoo, LinkedIn, e Uber, e cada vez que me preparava para uma entrevista, pensava para mim mesmo “Porque é que alguém não criou uma boa folha de respostas de fraude Big-O?”. Assim, para poupar a todos vocês, gente fina, uma tonelada de tempo, eu fui em frente e criei uma. Aproveitem! – Eric

Veja o El Grapho, uma biblioteca de visualização de dados gráficos que suporta milhões de nós e bordas

Big-O Gráfico de Complexidade

>>Excellent

Horrible Bad Fair Good
O(log n), O(1) O(n) O(n) O(n log n) O(n^2) O(2^n) O(n!) Elementos de Operações

Estrutura Comum de Dados Operações

th>Accessth>Searchth>Insertion>th>Deletionth>th>Access

>Inserção>>Deleção>>>/th>>>/th>>>/tr>>>tr>>>Array>>Θ(1)>>>Θ(n)>>>>Θ(n)>div>

O(1)>>O(n)>>O(n)>>>O(n)

>>O(n)

>O(1)>>O(n)

>>O(n)>>O(1)>>O(1)>>>div id=”828fdd4e999″>>/td>

Θ(n)>>Θ(n)>>Θ(1)>>Θ(1)>>>>O(n)>>O(n)>>O(1)>>O(1)>>>div id=”828fdd4e999″>>/td>

>>Doubly-Lista ligadaΘ(n)>>Θ(n)>>Θ(1)

>O(n)O(n)

>O(1)>>O(n)

>>O(n)

>>O(n)

>Θ(1)>N/A

>O(n)O(n)

>>>Árvore de Pesquisa Binária

>>O(n)

>>Θ(log(n))

>>O(n)

>>O(n)

>b-ÁrvoreΘ(log(n))>Θ(log(n))>>Θ(log(n))Θ(log(n))>>>O(log(n))

>>O(log(n))

>>O(n)

Θ(log(n))>>Θ(log(n))>Θ(log(n))>>Θ(log(n))

>>O(log(n))>>O(log(n))

>O(n)

>>Θ(log(n))>>Θ(log(n))

>>O(log(n))

Estrutura de Dados Complexidade Temporal Complexidade Espacial
Média Pior th>>Worst th> Search Θ(n) O(n)
Stack Θ(n) Θ(n) Θ(1) Θ(1) O(n) O(1)
Queue Θ(n) Θ(n) Θ(1) Θ(1) O(n)
Singly-Lista ligada
Θ(1) O(1)
Skip List Θ(log(n)) Θ(log(n)) Θ(log(n)) Θ(log(n)) O(n) O(n) O(n log(n))
Hash Table N/A Θ(1) Θ(1) O(n) O(n)
Θ(log(n)) Θ(log(n)) Θ(log(n)) Θ(log(n)) O(n) O(n) O(n) O(n)
Árvore cartesiana N/A Θ(log(n)) Θ(log(n)) N/A O(n) O(n)
O(log(n)) O(log(n))
Red-Black Tree O(log(n)) O(log(n))
Splay Tree N/A Θ(log(n)) N/A O(log(n)) O(log(n)) O(log(n)) O(n)
AVL Tree Θ(log(n)) Θ(log(n)) Θ(log(n)) Θ(log(n)) O(log(n)) O(log(n)) O(log(n)) O(n)
KD Tree Θ(log(n)) Θ(log(n)) Θ(log(n)) Θ(log(n)) O(n) O(n) O(n) O(n) O(n)

Array Sorting Algorithms

th>Worst

>O(log(n))

O(n log(n))

>>>Heapsort

>O(1)

>>>O(n^2)

>O(n^2)>>O(1)

>>O(1)

>>Bucket Sort

>>O(n^2)

>>Θ(nk)

>O(n+k)>O(k)

Algorithm Time Complexity Space Complexity
>th>>Best Average Worst
Quicksort Ω(n log(n)) Θ(n log(n)) O(n^2)
Mergesort Ω(n log(n)) Θ(n log(n)) O(n)
Timsort Ω(n) Θ(n log(n)) O(n log(n)) O(n)
Ω(n log(n)) Θ(n log(n)) O(n log(n))
Bubble Sort Ω(n) Θ(n^2) O(1)
Insertion Sort Ω(n) Θ(n^2) O(n^2) O(1)
Selection Sort Ω(n^2) Θ(n^2)
Tree Sort Ω(n log(n)) Θ(n log(n)) O(n^2) O(n)
Shell Sort Ω(n log(n)) Θ(n(log(n))^2) O(n(log(n))^2)
Ω(n+k) Θ(n+k) O(n)
Radix Sort Ω(nk) O(nk) O(n+k)
Counting Sort Ω(n+k) Θ(n+k)
Cubesort Ω(n) Θ(n log(n)) O(n log(n)) O(n)

Aprenda Mais

  • Rasgando a Entrevista de Codificação: 150 Perguntas e Soluções de Programação
  • li>Introdução aos Algoritmos, 3ª Edição

  • Estruturas de Dados e Algoritmos em Java (2ª Edição)
  • JavaScript de Alto Desempenho (Construir Interfaces de Aplicações Web mais Rápidas)

Ganhe a Grande-O Póster da Folha de Cópias

Contribuidores

  1. Eric Rowell
  2. Quentin Pleple
  3. Michael Abed
  4. Nick Dizazzo
  5. Adam Forsyth
  6. Felix Zhu
  7. Jay Engineer
  8. Josh Davis
  9. Nodir Turakulov
  10. Jennifer Hamon
  11. David Dorfman
  12. Bart Massey
  13. Ray Pereda
  14. Si Pham
  15. Mike Davis
  16. mcverry
  17. Max Hoffmann
  18. li>Bahador Saketli>Damon Davisonli>Alvin Wanli>Alan Briolatli>Drew Hannayli>Andrew Rasmussenli>Dennis Tsangli>Vinnie Magroli>Adam Arold

  19. Alejandro Ramirez
  20. li>Aneel Nazarethli>Rahul Chowdhuryli>Jonathan McElroyli>steven41292li>Brandon Amosli>Joel Friedlyli>Casper Van Gheluweli>Eric Lefevre-.Ardantli>Olegli>Renfred Harperli>Piper Chesterli>Miguel Amigotli>Apurva Kli>Matthew Daroncoli>Yun-Cheng Lin

  21. Clay Tyler
  22. Orhan Can Ozalp
  23. Ayman Singh
  24. David Morton
  25. Aurelien Ooms
  26. Sebastian Paaske Torholm
  27. Koushik Krishnan
  28. Drew Bailey
  29. Robert Burke

Faça esta Página Melhor

Edite estas tabelas!

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *