#28 O(1), O(log n), O(n^2) - Ist die Komplexität von Algorithmen im Entwickler-Alltag relevant?
Engineering Kiosk
19.07.2022 • 55 Min.
Beim Programmieren ist alles ein Algorithmus. Irgendwie zumindest. Doch wie misst man die Zeitkomplexität? Das ganze nennt sich Big-O-Notation, oder zu deutsch "Bachmann-Landau-Notation". Eigentlich ein recht trockenes Thema, doch auch irgendwie relevant in der heutigen Zeit von verteilten Systemen und großen Datenmengen. Doch was ist die Big-O-Notation? Was sagt sie aus? Wo kommt diese in der Praxis vor? Und inwieweit hat das ganze noch eine Relevanz in Zeiten von Cloud Computing und fast unbegrenzten Hardware-Ressourcen? Darum geht es in dieser Episode. Bonus: Wie Andy und Wolfgang in deutscher Grammatik belehrt werden, ob es OK ist in 1on1s zu fluchen und das Hash-Kollisionen mit der ganzen Sache zu tun haben. Feedback an stehtisch@engineeringkiosk.dev oder via Twitter an https://twitter.com/EngKiosk Unsere aktuellen Werbepartner findest du auf https://engineeringkiosk.dev/partners LinksPocket Casts: https://pocketcasts.com/Learn Redis the hard way (in production): https://tech.trivago.com/post/learn-redis-the-hard-way/Redis KEYS Befehl: https://redis.io/commands/keys/Redis HSET Befehl: https://redis.io/commands/hset/kSQL: https://www.confluent.io/de-de/blog/ksql-streaming-sql-for-apache-kafka/Engineering Kiosk auf LinkedIn: https://www.linkedin.com/company/engineering-kiosk/Sprungmarken(00:00:00) Intro (00:00:49) Intro: Feedback zur Episode #26 - Deutschland spricht schlecht Englisch (00:03:55) Intro: Feedback zur Grammatik - Der, die oder das Kommentar (00:06:05) Wer hört denn so alles das Engineering Kiosk? (00:07:09) Podcast-Player: Pocket Casts (00:08:32) Was sind die Sachen, die oft sinnvoll sind, du aber doch vergessen hast? (00:10:34) Das heutige Thema: Big-O Notation / Bachmann-Landau Notation (Zeitkomplexität von Algorithmen) (00:13:33) Warum ist die Big-O Notation / Bachmann-Landau Notation relevant (00:15:24) Wo war es das letzte mal wo dir die Big-O Notation vorgekommen ist (00:16:05) Was ist die Big-O Notation / Bachmann-Landau Notation? (00:20:59) Geben wir den best, average oder worst-case der Big-O Notation / Bachmann-Landau Notation an? (00:25:15) Konstanten können zur Vereinfachung einfach weggelassen werden (00:27:00) Big-O Notation bei redis: Die Story wie Andy damit in Berührung kam (00:31:16) Zeitkomplexität vs. Space-Complexity / Raumkomplexität: Zeit vs. Memory (00:32:58) Gibt es was besseres als O(1)? (00:34:26) Ist das setzen eines Keys in einer Hashmap immer O(1)? (00:40:03) Inwieweit kann man die Big-O Notation / Bachmann-Landau Notation auf Datenbanken mappen? (00:42:07) Wie relevant ist die Optimierung der Big-O Notation in Zeiten von Cloud und schnellen Servern eigentlich noch? (00:45:52) Batch-Processing vs. Streaming und die Optimierung von Algorithmen (00:48:49) Optimierungen von Algorithmen in JavaScript / auf Client-Seite (00:52:06) Optimierungen können auch schlecht sein bzw. schlecht aussehen (00:53:09) Outro mit Flachwitzen HostsWolfgang Gassler (https://twitter.com/schafele)Andy Grunwald (https://twitter.com/andygrunwald) Engineering Kiosk Podcast: Anfragen an stehtisch@engineeringkiosk.dev oder via Twitter an https://twitter.com/EngKiosk