¡Conoce tus complejidades!

¡Hola! Esta página web cubre las complejidades Big-O de espacio y tiempo de algoritmos comunes utilizados en Ciencias de la Computación. En el pasado, cuando me preparaba para las entrevistas técnicas, me pasaba horas rastreando Internet y recopilando las complejidades mejores, medias y peores de los algoritmos de búsqueda y ordenación para no quedarme perplejo cuando me preguntaban por ellos. En los últimos años, he realizado entrevistas en varias startups de Silicon Valley, y también en algunas empresas más grandes, como Google, Facebook, Yahoo, LinkedIn y Uber, y cada vez que me preparaba para una entrevista, pensaba: «¿Por qué alguien no ha creado una bonita hoja de trucos de Big-O?». Así que, para ahorrarles a todos ustedes una tonelada de tiempo, me adelanté y creé una. ¡Que la disfruten! – Eric

Echa un vistazo a El Grapho, una biblioteca de visualización de datos de gráficos que soporta millones de nodos y aristas

Big-O Complexity Chart

Horrible Bad Fair Good Excellent
O(log n), ¡O(1) O(n) O(n log n) O(n^2) O(2^n) O(n!) Operaciones Elementos

Operaciones de estructura de datos comunes

.

Stack

Tabla Hash

Árbol cartesiano

Estructura de datos Complejidad temporal Complejidad espacial
Promedio Peor
Acceso Búsqueda Inserción Borrado Acceso Búsqueda Inserción Borrado
Matriz Θ(1) Θ(n) Θ(n) Θ(n) O(1) O(n)O(n)O(n)O(n) O(n)
Θ(n) Θ(n) Θ(1) Θ(1) O(n) O(n) O(1) O(1) O(n)
Cola Θ(n) Θ(n) Θ(1) Θ(1) O(n) O(n) O(1) O(1) O(n)
Singly-Lista enlazada Θ(n) Θ(n) Θ(1) Θ(1) O(n) O(n) O(1) O(1) O(n) Lista doblementeLista enlazada Θ(n) Θ(n) Θ(1) Θ(1) O(n) O(n) O(1) O(1) O(n)
Lista de saltos Θ(log(n))Θ(log(n)) Θ(log(n)) Θ(log(n)) O(n)O(n) O(n) O(n) O(n log(n))
N/A Θ(1) Θ(1) Θ(1) N/A O(n) O(n) O(n) O(n)
Árbol de búsqueda binario Θ(log(n)) Θ(log(n)) Θ(log(n))Θ(log(n)) O(n) O(n) O(n) O(n) O(n)
N/A Θ(log(n)) Θ(log(n)) Θ(log(n)) N/A O(n) O(n) O(n) O(n)
B-Árbol Θ(log(n)) Θ(log(n)) Θ(log(n)) Θ(log(n)) O(log(n)) O(log(n)) O(log(n)) O(log(n)) O(n)
Rojo-Árbol negro Θ(log(n)) Θ(log(n)) Θ(log(n)) Θ(log(n)) O(log(n)) O(log(n)) O(log(n)) O(log(n)) O(n) Árbol de juego N/A Θ(log(n)) Θ(log(n)) Θ(log(n)) N/A O(log(n)) O(log(n)) O(log(n)) O(n)
Árbol AVL Θ(log(n)) Θ(log(n)) Θ(log(n)) Θ(log(n)) O(log(n)) O(log(n)) O(log(n)) O(log(n)) O(n)
Árbol KD Θ(log(n)) Θ(log(n)) Θ(log(n)) Θ(log(n)) O(n) O(n) O(n) O(n) O(n)

Algoritmos de ordenación de matrices

Heapsort

Ordenación de la selección

Algoritmo Complejidad temporal Complejidad espacial
Mejor Promedio Peor Peor
Clasificación Ω(n log(n)) Θ(n log(n)) O(n^2) O(log(n))
Mergesort Ω(n log(n)) Θ(n log(n)) O(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)) O(1)
Ordenación por burbujas Ω(n) Θ(n^2) O(n^2) O(1)
Ordenación por inserción Ω(n) Θ(n^2) O(n^2) O(1)
Ω(n^2) Θ(n^2) O(n^2) O(1)
Ordenación del árbol Ω(n log(n)) Θ(n log(n)) O(n^2) O(n)
Ordenación por conchas Ω(n log(n)) Θ(n(log(n))^2) O(n(log(n))^2) O(1)
Ordenación por cubos Ω(n+k) Θ(n+k) O(n^2) O(n)
Ordenación de la matriz Ω(nk) Θ(nk) O(nk) O(n+k)
Ordenación del recuento Ω(n+k) Θ(n+k) O(n+k) O(k)
Cubosort Ω(n) Θ(n log(n)) O(n log(n)) O(n)

Aprende más

  • Cómo superar la entrevista de codificación: 150 preguntas de programación y soluciones
  • Introducción a los algoritmos, 3ª edición
  • Estructuras de datos y algoritmos en Java (2ª edición)
  • JavaScript de alto rendimiento (Construya interfaces de aplicaciones web más rápidas)
    • Obtenga el póster oficial de Big-O Cheat Sheet Poster

      Contribuidores

  1. Eric Rowell
  2. Quentin Pleple
  3. Michael Abed
  4. Nick Dizazzo
  5. Adam Forsyth
  6. Felix Zhu
  7. .

  8. Jay Engineer
  9. Josh Davis
  10. Nodir Turakulov
  11. Jennifer Hamon
  12. David Dorfman
  13. Bart Massey
  14. Ray Pereda
  15. Si Pham
  16. Mike Davis
  17. mcverry
  18. Max Hoffmann
  19. Bahador Saket
  20. Damon Davison
  21. Alvin Wan
  22. Alan Briolat
  23. Drew Hannay
  24. Andrew Rasmussen
  25. Dennis Tsang
  26. Vinnie Magro
  27. Adam Arold
  28. Alejandro Ramírez
  29. Aneel Nazareth
  30. Rahul Chowdhury
  31. Jonathan McElroy
  32. steven41292
  33. Brandon Amos
  34. Joel Friedly
  35. Casper Van Gheluwe
  36. Eric Lefevre-.Ardant
  37. Oleg
  38. Renfred Harper
  39. Piper Chester
  40. Miguel Amigot
  41. Apurva K
  42. Matthew Daronco
  43. Yun-Cheng Lin
  44. Clay Tyler
  45. Orhan Can Ozalp
  46. Ayman Singh
  47. David Morton
  48. Aurelien Ooms
  49. Sebastian Paaske Torholm
  50. Koushik Krishnan
  51. Drew Bailey
  52. Robert Burke

Mejora esta página

¡Edita estas tablas!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *