Know Thy Complexities! (Deutsch)

Hallo! Diese Webseite deckt die räumlichen und zeitlichen Big-O-Komplexitäten von häufigen Algorithmen ab, die in der Informatik verwendet werden. Als ich mich in der Vergangenheit auf technische Interviews vorbereitet habe, habe ich Stunden damit verbracht, das Internet zu durchforsten, um die besten, durchschnittlichen und schlimmsten Komplexitäten für Such- und Sortieralgorithmen zusammenzustellen, damit ich nicht ratlos bin, wenn ich danach gefragt werde. In den letzten Jahren habe ich bei mehreren Silicon Valley-Startups und auch bei einigen größeren Unternehmen wie Google, Facebook, Yahoo, LinkedIn und Uber Vorstellungsgespräche geführt, und jedes Mal, wenn ich mich auf ein Vorstellungsgespräch vorbereitet habe, dachte ich mir: „Warum hat nicht jemand einen schönen Big-O-Spickzettel erstellt?“. Um Ihnen allen eine Menge Zeit zu ersparen, habe ich einen solchen erstellt. Viel Spaß damit! – Eric

Schauen Sie sich El Grapho an, eine Graphdaten-Visualisierungsbibliothek, die Millionen von Knoten und Kanten unterstützt

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!) Operationen Elemente

Gängige Datenstruktur-Operationen

Kartesischer Baum

Spielbaum

Datenstruktur Zeitkomplexität Raumkomplexität
Durchschnitt Schlechteste Schlechteste
Zugriff Suchen Einfügen Löschen Zugriff Suchen Einfügen Löschen
Array Θ(1) Θ(n) Θ(n) Θ(n) O(1) O(n) O(n) O(n) O(n)
Stack Θ(n) Θ(n) Θ(1) Θ(1) O(n) O(n) O(1) O(1) O(n)
Queue Θ(n) Θ(n) Θ(1) Θ(1) O(n) O(n) O(1) O(1) O(n)
Singly-Verknüpfte Liste Θ(n) Θ(n) Θ(1) Θ(1) O(n) O(n) O(1) O(1) O(n) Doppel-Verknüpfte Liste Θ(n) Θ(n) Θ(1) Θ(1) O(n) O(n) O(1) O(1) O(n)
Sprungliste Θ(log(n)) Θ(log(n)) Θ(log(n)) Θ(log(n)) O(n) O(n) O(n) O(n) O(n log(n))
Hashtabelle N/A Θ(1) Θ(1) Θ(1) N/A O(n) O(n) O(n) O(n)
Binärer Suchbaum Θ(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-Baum Θ(log(n)) Θ(log(n)) Θ(log(n)) Θ(log(n)) O(log(n)) O(log(n)) O(log(n)) O(log(n)) O(n)
Rot-Schwarzer Baum Θ(log(n)) Θ(log(n)) Θ(log(n)) Θ(log(n)) O(log(n)) O(log(n)) O(log(n)) O(log(n)) O(n)
N/A Θ(log(n)) Θ(log(n)) Θ(log(n)) N/A O(log(n)) O(log(n)) O(log(n)) O(n)
AVL-Baum Θ(log(n)) Θ(log(n)) Θ(log(n)) Θ(log(n)) O(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-Sortieralgorithmen

Algorithmus Zeitkomplexität Raumkomplexität
Best Durchschnitt Schlechteste Schlechteste
Quicksort Ω(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)
Heapsort Ω(n log(n)) Θ(n log(n)) O(n log(n)) O(1)
Bubble Sort Ω(n) Θ(n^2) O(n^2) O(1)
Einfügungssortierung Ω(n) Θ(n^2) O(n^2) O(1)
Sortierung der Auswahl Ω(n^2) Θ(n^2) O(n^2) O(1)
Baumsortierung Ω(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) O(1)
Eimersortierung Ω(n+k) Θ(n+k) O(n^2) O(n)
Radix Sort Ω(nk) Θ(nk) O(nk) O(n+k)
Zählende Sortierung Ω(n+k) Θ(n+k) O(n+k) O(k)
Cubesort Ω(n) Θ(n log(n)) O(n log(n)) O(n)

Weiter lernen

  • Cracking the Coding Interview: 150 Programmierfragen und Lösungen
  • Einführung in Algorithmen, 3rd Edition
  • Datenstrukturen und Algorithmen in Java (2nd Edition)
  • High Performance JavaScript (Build Faster Web Application Interfaces)

Get the Official Big-O Spickzettel Poster

Beitragende

  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. Bahador Saket
  19. Damon Davison
  20. Alvin Wan
  21. Alan Briolat
  22. Drew Hannay
  23. Andrew Rasmussen
  24. Dennis Tsang
  25. Vinnie Magro
  26. Adam Arold
  27. Alejandro Ramirez
  28. Aneel Nazareth
  29. Rahul Chowdhury
  30. Jonathan McElroy
  31. steven41292
  32. Brandon Amos
  33. Joel Friedly
  34. Casper Van Gheluwe
  35. Eric Lefevre-.Ardant
  36. Oleg
  37. Renfred Harper
  38. Piper Chester
  39. Miguel Amigot
  40. Apurva K
  41. Matthew Daronco
  42. Yun-Cheng Lin
  43. Clay Tyler
  44. Orhan Can Ozalp
  45. Ayman Singh
  46. David Morton
  47. Aurelien Ooms
  48. Sebastian Paaske Torholm
  49. Koushik Krishnan
  50. Drew Bailey
  51. Robert Burke

Make this Page Better

Bearbeiten Sie diese Tabellen!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.