Udemy

Intro to Big O

Ein kostenloses Video-Tutorial von Colt Steele
Developer and Bootcamp Instructor
Bewertung: 4,7 von 5Dozentenbewertung
30 Kurse
2.050.182 Teilnehmer:innen
Intro to Big O

Steige mit dem kompletten Kurs tiefer ins Thema ein

JavaScript Algorithms and Data Structures Masterclass

The Missing Computer Science and Coding Interview Bootcamp

21:44:09 On-Demand-Video • Aktualisiert am Januar 2026

Learn everything you need to ace difficult coding interviews
Master dozens of popular algorithms, including 6 sorting algorithms!
Implement 10+ data structures from scratch
Improve your problem solving skills and become a stronger developer
Deutsch [autom.]
Hey, willkommen zurück. Dies ist also der erste echte Abschnitt des Kurses und wir starten ihn als etwas wirklich Wichtiges Großes. Es heißt Big O-Notation. Und wenn ich groß sage, meine ich nicht, dass es lang oder schwierig ist, auch wenn es eine große Bedeutung hat. Es ist etwas, von dem wir im Grunde keine andere Wahl hatten, als den Kurs mit diesem Thema zu beginnen, denn zumindest wenn ich es zu einem guten Kurs machen wollte, weil es auftauchen wird, werde ich nicht jedes einzelne Video sagen, aber Vielleicht halten mich 70 Prozent der Videos und der Rest des Kurses nicht daran fest, aber viele Videos sind eine bedeutende Zahl. Wir werden auf das zurückgreifen, worüber wir in diesem Abschnitt gesprochen haben. Bevor ich überhaupt erkläre, was es ist, habe ich eine kurze Warnung. In diesem Abschnitt gibt es ein bisschen Mathe, und ich warne Sie, Sie nicht abzuschrecken, sondern Sie tatsächlich zu ermutigen, sich durchzusetzen. Wenn Sie mit Mathematik zu kämpfen haben oder jemand sind, der das Wort Logarithmus noch nie gehört hat oder in zehn oder 20 Jahren, wird dies am Ende in diesem Abschnitt behandelt. Aber keine Panik, denn wir werden hier in diesem Abschnitt einen Rahmen schaffen, um über Code und den Rest des Kurses zu sprechen. Und das beinhaltet zwar etwas Mathematik im Voraus, aber es bedeutet, dass der Rest des Kurses nicht ein Teil davon sein wird, sondern definitiv Mathematik. Dies ist kein Hinweis darauf, wie der Rest des Kurses aussehen wird. Also schieben Sie es einfach durch, wenn ich meine, wenn Sie Mathe großartig mögen, wenn Sie Probleme mit diesem Abschnitt haben. Denken Sie daran, dass der gesamte Kurs nicht so ist und wir ihn nur aus dem Weg räumen, weil es, wie ich sagte, so sein muss zuerst kommen. Ich habe nicht wirklich eine Wahl. IN ORDNUNG. Tut mir leid, wenn ich dort jemanden erschreckt habe. Lassen Sie uns über die Ziele für diesen Abschnitt sprechen. In diesem Video werden wir zunächst nur über die Notwendigkeit einer Big O-Notation sprechen. Ich habe noch nicht einmal erwähnt, was es ist. Also werden wir dazu kommen, dann werden wir beschreiben, was es ist, warum wir uns darum kümmern, was es ist, wir werden lernen, Big O-Ausdrücke zu vereinfachen, die wir definieren, Zeitkomplexität und Raumkomplexität werden bewertet Zeitkomplexität und Raumkomplexität verschiedener Algorithmen unter Verwendung der Big O-Notation und dann werden wir am Ende beschreiben, was ein Logarithmus ein bisschen Mathematik ist. Ich weiß, dass es viel ist, aber wir werden mit diesem ersten Punkt beginnen, der die Notwendigkeit einer Big-O-Notation motiviert. Also, was ist die Idee hier. In diesem Kurs geht es um Algorithmen, um das Lösen von Herausforderungen, um Informatik und Datenstrukturen. Aber für jedes Thema in diesem Kurs gibt es 10 bis 20 verschiedene Implementierungen oder Lösungen, die wahrscheinlich viel mehr funktionieren könnten. Woher wissen wir, was am besten ist? Lassen Sie es uns also ein wenig auf ein einziges Problem verkleinern. Angenommen, es gibt zwei gültige Lösungen für ein Problem. Sie funktionieren beide und unterscheiden sich nicht nur in Namen oder Variablennamen oder Ähnlichem, sondern auch in Ansätzen, bei denen einer eine Schleife verwendet, die der andere verwendet. Ich kenne keine Liste, keinen String oder etwas, um dieselbe Aufgabe zu erfüllen. Woher wissen wir, welches am besten ist? Darum geht es bei Big O wirklich. Es ist ein System, mit dem Code verallgemeinert und darüber gesprochen und Code und seine Leistung mit anderen Codeteilen verglichen werden können. Ok, hier ist ein konkreteres Beispiel. Schreiben Sie eine Funktion, die eine Zeichenfolgeneingabe akzeptiert und eine Kopie zurückgibt oder umkehrt. Wenn ich Sie darum bitten würde, was vielleicht einige unternehmungslustige Studenten tun und einige kreative Lösungen auf den ersten Blick finden, kann ich drei verschiedene Lösungen finden, und ich bin mir sicher, dass es da draußen noch viel mehr gibt. Ich habe diesen Beitrag auf Stack Overflow gefunden, der 10 verschiedene Implementierungen und Javascript enthält und alle unterschiedlich sind. Wie gesagt, es ist nicht nur ein anderer Variablenname. Es geht nicht nur darum, eine for-Schleife für eine while-Schleife zu wechseln. Es gibt verschiedene Ansätze. Woher wissen wir, ob all dies funktioniert? Und hier ist eine, die eine for-Schleife und ein Array verwendet. Hier ist eine, die keine Schleifen verwendet und keine Arrays, es ist alles eigentlich nur oder ein Array und dort an einem Punkt, aber es sind alle Methoden integriert. Woher wissen wir, welches am besten ist? Nun, wir werden dort ankommen. Aber wäre es nicht schön, wenn es eine Art System zum Klassifizieren oder Vergleichen von Code gäbe, das ich bereits verdorben habe und das eine große O-Art ist? Ist es so, als würden wir über Erdbeben sprechen? Dies war sehr früh eine Seismologie-101-Klasse. Ich begann damit, über die Richterskala zu sprechen, denn dann können wir über Erdbeben sprechen und sie miteinander vergleichen. Anstatt nur zu sagen, dass es ein großes Erdbeben gibt und dann dort drüben ein größeres. Wir können sagen, es gibt eine 7. 5 und dann eine 9. 2 da drüben. Und das bringt die Dinge in einen Kontext. Das ist keine gute Analogie, aber die Idee ist, dass wir unserem Code allgemeine Bezeichnungen zuweisen können. Anstatt also etwas Großartiges zu sagen oder für unseren Code schrecklich zu sein, können wir eine numerische Darstellung der Leistung von Code haben. Das ist es also, was Big-O uns geben wird, anstatt Farben und Text zu mögen. Groß. Es wird ein bisschen anders aussehen. Es mag ein bisschen mathematisch aussehen, aber es ist eigentlich ziemlich einfach. Sobald Sie die erste Hürde überwunden haben, sehen Sie sehr fremd und seltsam aus. Ein letzter Punkt, den ich einigen von Ihnen machen möchte, könnte sich fragen, ob ich Sie gebeten habe, eine Funktion zu schreiben, die eine Zeichenfolge umkehrt, und Sie sie zum Laufen bringen. Es ist nicht nur wichtig, dass Sie es zum Laufen bringen. Warum ist es wichtig, was am besten ist? Die Lösung, die Sie finden, ist die beste. In gewisser Weise denke ich, dass abhängig von Ihrem Projekt und dem Kontext, der wahr ist, die beste Lösung die ist, die Sie zur Arbeit bringen können. Wenn wir jedoch über Dinge wie das Befragen technischer Interviewcode-Herausforderungen oder die Arbeit in einem großen Unternehmen sprechen, in dem Sie mit einem riesigen Datensatz arbeiten, sagen wir Hunderte Millionen Daten, bei denen eine Algorithmusimplementierung jedes Mal eine Stunde einsparen könnte läuft im Vergleich zu einer anderen Implementierung. An diesem Punkt ist die Leistung wichtig, und es gibt einen tatsächlich besten Algorithmus oder eine beste Lösung. Daher ist es wichtig, ein genaues Vokabular zu haben, um über die Leistung unseres Codes zu sprechen. Selbst wenn Sie mit Ihrer Lösung für etwas zufrieden sind, ist es hilfreich zu verstehen, wie die Leistung im Vergleich zu anderen verglichen wird. Es ist auch gut, um Kompromisse zwischen verschiedenen Ansätzen zu diskutieren, da es oft nicht so geschnitten und trocken ist, wie ich es mir vorgestellt habe. Es ist nicht so, dass eine Lösung immer großartig und die andere immer schrecklich ist. Manchmal ist eine Lösung großartig, um wirklich große Datenmengen von Daten zu verarbeiten. Ein anderer kann in der Zeit, die er benötigt, immer sehr konstant sein, aber es kann im Voraus mehr Zeit in Anspruch nehmen. Es gibt Kompromisse, also ist es nicht immer gerecht. Dies ist das Beste. Auch wenn Sie versuchen, Ihren Code zu debuggen. Es hilft, Dinge zu verstehen, die es verlangsamen, und nicht nur nach Fehlern zu suchen. Nehmen wir an, Ihr Code funktioniert, aber aus irgendeinem Grund dauert er viel länger als erwartet. Oder Ihr Computer bleibt im Browser zurück und flippt aus, wenn Sie eine Funktion ausführen. Es ist hilfreich, wenn Sie einige der Dinge verstehen, über die wir in diesem Abschnitt und in der Big O-Notation sprechen werden, und Sie können tatsächlich feststellen, wo einige Probleme auftreten können. Es hilft uns also, ineffiziente Punkte zu identifizieren, und schließlich sollten Sie sich darum kümmern, weil es in Interviews häufig vorkommt, wenn ein Interviewer so etwas wie das große O dieses Algorithmus oder dieser Funktion, die Sie geschrieben haben, sagt, oder hier sind drei Funktionen, was die große Show ist, die in Kürze Sinn macht, aber es ist wichtig, nur für Interviews zu wissen. Ich sagte, es ist weniger wichtig, weil Sie es hoffentlich lernen, um die Dinge tatsächlich zu verstehen und Ihnen zu helfen, Ihren Code besser zu verstehen und besser über Ihren Code zu sprechen anstatt nur direkt zu versuchen, es für ein Interview zu meistern. Aber Interviews sind wichtig, also auch dort kein Urteil. Also werde ich dieses Video hier weglassen und versuchen, die Dinge kompakter zu halten. Ich möchte keine weitläufigen Videos. Und im nächsten Video werden wir anhand eines realen Beispiels Code aufgreifen und analysieren, wie effizient er ist.