What Is Big O? (Comparing Algorithms)

Sdílet
Vložit
  • čas přidán 5. 09. 2024
  • With so many ways to solve a problem, how do we know which was is the right one? Let's look at one of the most common methods for analyzing algorithms: Big O Notation.
    Created by: Cory Chang
    Produced by: Vivian Liu
    Script Editor: Justin Chen, Brandon Chen, Elaine Chang, Zachary Greenberg
    Twitter: / ubehavior
    -
    Extra Resources:
    Big O Wiki: en.wikipedia.o...
    Analysis of Algorithms: en.wikipedia.o...
    Time Complexity: en.wikipedia.o...
    Sorting: en.wikipedia.o...
    Fast Inverse Square Root: en.wikipedia.o...
    Picture Credits:
    s-media-cache-...

Komentáře • 107

  • @keymaster9306
    @keymaster9306 Před 6 lety +50

    Actually I had a hard time wrapping my head around these concepts. But the metaphors used in the videos were so good, in fact it was very fascinating. Thanks for explaining this in a very interesting manner.

  • @kingshukcs
    @kingshukcs Před 8 měsíci +3

    Listen man....this video was awesome!! and it totally deserves more than 150k views. Your examples were just amazing....they flipped switches in my brain so thank you!!

  • @ricardoamaya2500
    @ricardoamaya2500 Před 6 lety +139

    Searched for Big O, came for the pokemon

    • @artbridder
      @artbridder Před 6 lety +11

      stayed for the pokemon?

    • @DrRiq
      @DrRiq Před 4 lety +4

      it's "came for big O, stayed for the Pokemon"

  • @poggly
    @poggly Před 5 lety +4

    If you already kind-of-not-quite-100% get Big O, the metaphors here are actually pretty good. If you're still confused about Big O I recommend looking at the limit definition/interpretation if you know what it means in calc. It's basically like when you learn limits- what happens when x gets really really big in f(x) compared to g(x).

  • @jamesmiller2521
    @jamesmiller2521 Před 4 lety +15

    Algorithms! Gotta understand 'em all!

  • @itsiwhatitsi
    @itsiwhatitsi Před 6 lety +69

    This seems like a David Lynch film: hard to understand but many people like it anyway

    • @khushiaswani6500
      @khushiaswani6500 Před 4 lety

      it looks so professional but personally I didnt get a thing lol

  • @flatbox1416
    @flatbox1416 Před 3 lety +3

    0:38, I nearly had a stroke.

  • @zyrocks2
    @zyrocks2 Před 7 lety +25

    still no freaking clue what "O" is.. is it just there as a decoration? no clue...

    • @gemyellow
      @gemyellow Před 6 lety +26

      Big O notation, also called Landau's symbol.
      Landau's symbol comes from the name of the German number theoretician Edmund Landau who invented the notation. *The letter O is used because the rate of growth of a function is also called its 'order'.*

  • @alexanderf8451
    @alexanderf8451 Před 6 lety +3

    Props for including fast inverse square root!

  • @gisforgirard
    @gisforgirard Před 6 lety +10

    this is literally the best video I have ever seen on the entire internet. thank you for this.

  • @affshafee.rahman
    @affshafee.rahman Před 5 lety +1

    If at 6:44, the worst, average and best cases are all big-Ohs, then where does big-Theta and big-Omega fit?

  • @second_second_
    @second_second_ Před 3 lety +1

    Wow, the cutest video about Big-0 i've ever watched (pokemon). wished i understand other references as well

  • @Sparkesix
    @Sparkesix Před 7 lety +3

    Another great video! I knew about the notation before, but you really nicely explained it to those that might be new to it. Keep it going! Unlike the other commenters, I think the analogies were on point, especially the train one.

  • @kyle.nguyen
    @kyle.nguyen Před 6 lety +2

    This is a really great visualization of the Big O concept

  • @Revycake
    @Revycake Před 3 lety +3

    I watched a bunch of big O videos because I just didn't get it from my lessons at uni. This is super understandable and actually fun. Thank you!!

  • @jobsjaz369r7
    @jobsjaz369r7 Před 5 lety +1

    That was brilliant. I don't come from a computer science background and this was the only video so far that clarified what big o is. Thank you. Have subscribed 😊

  • @shepbryan4315
    @shepbryan4315 Před rokem

    Great video! Also, I think it's absolutely hilarious that the analogy to ignoring scaling factors is that "we allow the algorithms to take performance enhancing drugs" lol

  • @almostbutnotentirelyunreas166

    As the self-proclaimed owner-driver of a multi-level, self-adjusting feed-back loop (neural network?), I want to thank you for for the equivalent of a Vit B12 shot . Interesting how so many ''obvious' solutions only become 'obvious' AFTER they have been recognised /explained by a master. Well done, and Thank you.

  • @alonsorobots
    @alonsorobots Před 6 lety +4

    Love these videos! Would love to see more CS and Algorithms explains this way =)

  • @classcube
    @classcube Před 7 lety +3

    Thanks for this. I like that you're explaining it without even touching code. Mario and Harry Potter make for a better explanation than code.

  • @kallihale5197
    @kallihale5197 Před 10 měsíci

    This deserves more views.

  • @vojtechfric9470
    @vojtechfric9470 Před 7 lety +28

    Maybe it is because I already know the subject, but the metaphores at the start seemed quite confusing. Also the graph (turtle, car, train, Mario, ...) is a bit confusing. You have X axis called distance, and Y axis called time. But the function are in terms of N. That might be confusing to some.

    • @pingshiyu
      @pingshiyu Před 7 lety +2

      Vojtěch Frič I agree, I feel like there must exist better ways to introduce this subject. I don't think this would have been all too clear for me if I was learning from this initially.

    • @rafaelmarques1773
      @rafaelmarques1773 Před 7 lety +3

      I didn't know any of this. This was as clear as I can think of (surely I don't understand it in any depth level but most ideas of CS to someone outside is to be kept at a ground level at first), I think you guys are suffering from overthinking, because you already know it. However, there are always quite some room to improvement, like the inverted axis. You can give it a push by just puting a note to remind of it, I only noticed it when you said that n² would take longer than n.

    • @jamebonez
      @jamebonez Před 6 lety

      I was having a hard time understanding the topic until I watched this video. The examples were very helpful.

  • @Mu_Lambda_Theta
    @Mu_Lambda_Theta Před 5 lety +1

    Or, to state that beginning "mess" of a definition in a graphical way:
    1) Draw f(x) in a coordinate System.
    2) Draw g(x) in the same system, but you can squish it as much as you want.
    3) Look as far right as you want, starting from any arbitrary point that you want
    4) f(x) is in O(g(x)) when f(x) never overtakes g(x) from said point onward

    • @madghostek3026
      @madghostek3026 Před 5 lety

      Thing that helped me understand this after many hours: the definition of big o ISN'T connected to effeciency of alghoritms itself, it explains how it works - you have 2 functions, one f one g, and on graph you clearly see that one (let's say f) at some point ends up under g. Now, no matter what you do to g without changing it's shape, so only moving and rotating around, if you go far enough it will overcome f at some point. And I was stuck here... what does it have to do with alghoritms??? The answer is that t(n), the time function of your alghoritm, likely a code, is interested in the worst case - the fact of going far enough to the right. To find out what would happen in such case, you can use O() that will give you the upper bound of possible time needed, since it makes the function go far to the right.
      One more thing: it is obvious that your alghoritm won't always perform in the worst time, the O notation is used for things like hardware requirments, where you need to be prepared for worst. There's also less used average time based calculation.
      To sum up, the O function kind of rates the shape of time function describing your alghoritm, or how it handles huge/tricky inputs

  • @mattwaters9008
    @mattwaters9008 Před 3 lety +3

    comp sci and pokemon. finally the youtube algo doing something right

  • @simonthelen5910
    @simonthelen5910 Před 4 lety

    I'm not sure if the racer analogy is that helpful for understanding Big O if you've never heard of if, but I personally found it pretty fascinating.
    I've never thought about idea of linear time meaning constant speed and logarithmic time meaning constant acceleration.

  • @andrewdelgado9815
    @andrewdelgado9815 Před 6 lety

    Most straight forward video I have seen on Big O. Great job!

  • @rebecaperez4472
    @rebecaperez4472 Před 4 lety

    this is the best explanation of big O I have seen.

  • @Jemmeh
    @Jemmeh Před 6 lety +4

    This is fantastic. Love the metaphors, it helps it be more tangible. Thanks for the video!

  • @FindusGame11
    @FindusGame11 Před 6 lety

    The n log n limit on sorting only applies for sorting algorithms that compare elements. For example, you can sort in linear time using radix or counting sort

  • @dimitrijep7872
    @dimitrijep7872 Před 5 lety

    very good explanation...if you don't get it here's an example:
    g(x) = O(f(x)) means that f(x) has a longer execution time, the time it takes to finish.
    In other words, any function that runs faster than f(x) will be O(f(x))

  • @LetsBeHuman
    @LetsBeHuman Před 5 lety +1

    very well explained with examples and graphics. Subscribed. this is the perfect example of explaining to a 5 year old kid.

  • @williamw8590
    @williamw8590 Před 7 lety +5

    This is super helpful! I love the simplicity of this explanation. Subscribed!

  • @grainfrizz
    @grainfrizz Před 6 lety +2

    f of x is in big O of g of x if and only if there exists a k and an x-naught, such that for all x greater than or equal to x-naught, f of x is less than to k times g of x

  • @bren007pie2
    @bren007pie2 Před 2 lety

    Incredible quality

  • @gkmishra2009
    @gkmishra2009 Před 7 lety

    Give lecture on - Brute Force, Greedy method, branch and bound, backtracking , dynamic programming , asymptotic analysis (best,worst,average cases), of time and space , upper and lower bound, basic concept of complexity classes- P, NP,Np-hard,NP-complete, graph and tree algorithm , depth breadth first traversal , tractable and interactable problem

  • @carloslaguna7036
    @carloslaguna7036 Před 3 lety +1

    How do you create your animations?

  • @pc8505
    @pc8505 Před 5 lety +1

    This is so amazing and easy to understand! Thanks a lot!

  • @sajaal-dabet148
    @sajaal-dabet148 Před 2 lety

    This is so brilliant! Keep doing such videos plz

  • @neo_snakejazz
    @neo_snakejazz Před 3 lety

    Excellent video, thanks for making it available to us.

  • @karthiksantosh3475
    @karthiksantosh3475 Před 4 lety

    this is the best vedio i seen more than 10 vedios on big oh but this vedio made me understand sooo fast thanks a lot bro

  • @rayerdyne
    @rayerdyne Před 4 lety

    Animations are just wonderfull. I-I c-can't hold back from hitting like button !

  • @javierbg1995
    @javierbg1995 Před 7 lety +4

    Nice video! Just as a small note: the code at 7:55 doesn't actually compute (approximate, really) the square root of a number, but the INVERSE of the square root. It's equivalent readable code would be: 1 / Math.sqrt(n). For anyone interested in the algorithm and the code check the Wikipedia page: en.wikipedia.org/wiki/Fast_inverse_square_root
    Here are some slides that explain quite well how it works and how anyone could come up with it: www.bullshitmath.lol/FastRoot.slides.html#/

  • @marklu5521
    @marklu5521 Před 4 lety +1

    goddamn it, could you have a legend that shows what each math notation means? thanks lol

  • @PrabhathDarshana
    @PrabhathDarshana Před 6 lety +1

    WOW, That's pretty clear!! Thanks.

  • @CarlosAlbertBR
    @CarlosAlbertBR Před 4 lety

    what a wonderful and clear explanation. thank you

  • @martintirpak1033
    @martintirpak1033 Před 6 lety

    I found this explanation great, would help me alot if I saw it when I first learned about O notation :)

  • @karimk8551
    @karimk8551 Před 6 lety +1

    excellent explanation

  • @aidayana3253
    @aidayana3253 Před 3 lety

    I really love the content and the way you share it

  • @kerryjackson6773
    @kerryjackson6773 Před 5 lety

    Awesome video, loved the metaphors!

  • @sudoku37
    @sudoku37 Před 5 lety +8

    I just pause in the middle of the video and check the comment, move to another video.

  • @aresxena6632
    @aresxena6632 Před 6 lety

    0:27 Biggest ''fuck you'' I've had all day.

  • @gingeral253
    @gingeral253 Před rokem

    Cool stuff

  • @MrKibujo
    @MrKibujo Před 6 lety

    undefined behavior gives me unexpected great video.

  • @Idan-tc5rt
    @Idan-tc5rt Před 6 lety +2

    1:16 this is kind of confusing. Your explanation of being 'fast' might make people think that it means that the algorithm is of a higher degree or complexity (like n is higher than log(n)), when in reality it's easier to imagine that Usian Bolt is O(1).

  • @user-yd9xy3rb4x
    @user-yd9xy3rb4x Před 3 lety

    you rock man

  • @maraud3r_
    @maraud3r_ Před 7 lety

    Very well explained

  • @tsunghan_yu
    @tsunghan_yu Před 6 lety

    excellent video!

  • @kneeboardcrasher
    @kneeboardcrasher Před 6 lety

    This was a an awesome video!

  • @charlliemurphy8381
    @charlliemurphy8381 Před 4 lety

    brilliant

  • @imadhamaidi
    @imadhamaidi Před 4 lety

    can anyone bother to explain what the code in 07:57 is?

  • @abeer141
    @abeer141 Před 3 lety

    It wasn't easy... I went throw 6 other videos so now your video made a sense to me.... But for anyone new it isn't easy... I recommend to watch this video at last after you have watched few others... It will make the concept smooth

  • @Malik-qh7wq
    @Malik-qh7wq Před 5 lety

    Great! Thnx

  • @LuvElaYay
    @LuvElaYay Před 6 lety

    great video

  • @srincrivel1
    @srincrivel1 Před 6 lety

    yo, this was really cool

  • @puglife1343
    @puglife1343 Před rokem

    not gonna lie, came for the thumbnail

  • @janmichaelbesinga3867
    @janmichaelbesinga3867 Před 5 lety

    I almost died when he say easy

  • @InstaCody
    @InstaCody Před 2 lety

    I wasn't getting it until I saw Mario. I love Mario

  • @ikki2526
    @ikki2526 Před 7 lety

    thank you very very much from thai.

  • @nguyenquangminh4814
    @nguyenquangminh4814 Před 5 lety

    omg thank you

  • @Onnethox
    @Onnethox Před 3 lety

    At this point I only work for exams without understanding jack sh1t

  • @robotspgc
    @robotspgc Před 5 lety

    How do you not have more subscribers?

  • @opus_X
    @opus_X Před rokem

    Bogosort #1!

  • @muhammadneanaa1611
    @muhammadneanaa1611 Před 4 lety

    genius!

  • @knightonhd1144
    @knightonhd1144 Před 4 lety

    It was starting to click with the umbrella but then I got lost again. I apologize master, I am a slow learner #anakinskywalker

  • @manifest_it_man
    @manifest_it_man Před 5 lety

    subscribed for guilty spark

  • @licolhavaiia2205
    @licolhavaiia2205 Před 4 lety

    0:38
    "easy, right ?" sike

    • @DrRiq
      @DrRiq Před 4 lety

      that's the joke..

  • @dotwarner17
    @dotwarner17 Před 4 lety

    I'm one of the tomatoes!

  • @BruceRicard
    @BruceRicard Před 3 měsíci

    This is the only video on Big-O I could find that uses the word "asymptotic" to define it. And yet it seems like you don't understand what it means. Because the conclusion should be that Big-O is completely useless, as all it tells us is what happens in a neighborhood of infinity, and nobody cares about that in practice.

  • @meghanabhange13
    @meghanabhange13 Před 7 lety

    Any other Whovians Jumped when they saw the TARDIS?

  • @Annettewalker-nq2jf
    @Annettewalker-nq2jf Před 5 lety +1

    i came here for pokemeon

  • @TimeLordVictorious11
    @TimeLordVictorious11 Před 7 lety +1

    at 0:18 how many of you thought of church from RvB instead of halo? lol czcams.com/video/Rmc661a9IRY/video.html

  • @Keriously
    @Keriously Před 5 lety

    n!
    You heard it here first!

  • @killerwhiteshark1797
    @killerwhiteshark1797 Před 4 lety

    I clicked on this because the Pokemon

  • @dailytimelapse8414
    @dailytimelapse8414 Před 7 lety +17

    this video is confusing... lolol

    • @MukeshRajput1982
      @MukeshRajput1982 Před 6 lety

      Very Informative...........
      czcams.com/channels/oscfxTBY93lYauulG-fBRw.html
      www.mukeshrajput102.com/

  • @DanT-iu6oc
    @DanT-iu6oc Před 4 lety +1

    not a very intuitive, introductory explanation. please go about it slower and more basic!!!!!!

  • @EUROSPORTS4TECH
    @EUROSPORTS4TECH Před rokem

    Gg

  • @gazorb2
    @gazorb2 Před 5 lety

    I don't understand this one at all.

  • @salek991
    @salek991 Před 6 lety

    Obviously Scyther with Double Team is faster than mr. Bolt.

  • @webgpu
    @webgpu Před 6 lety

    pokemon analogy? what's your audience? kindergarten?

    • @LetsBeHuman
      @LetsBeHuman Před 5 lety

      why not kindergarden kids start learning these.