Це відео не доступне.
Перепрошуємо.

What Is Big O? (Comparing Algorithms)

Поділитися
Вставка
  • Опубліковано 23 лип 2017
  • 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-...

КОМЕНТАРІ • 107

  • @keymaster9306
    @keymaster9306 6 років тому +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 7 місяців тому +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 6 років тому +138

    Searched for Big O, came for the pokemon

    • @artbridder
      @artbridder 6 років тому +11

      stayed for the pokemon?

    • @DrRiq
      @DrRiq 4 роки тому +4

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

  • @jamesmiller2521
    @jamesmiller2521 4 роки тому +15

    Algorithms! Gotta understand 'em all!

  • @Sparkesix
    @Sparkesix 7 років тому +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.

  • @flatbox1416
    @flatbox1416 3 роки тому +3

    0:38, I nearly had a stroke.

  • @gisforgirard
    @gisforgirard 6 років тому +10

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

  • @alexanderf8451
    @alexanderf8451 6 років тому +3

    Props for including fast inverse square root!

  • @Revycake
    @Revycake 3 роки тому +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 5 років тому +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 😊

  • @poggly
    @poggly 5 років тому +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).

  • @kyle.nguyen
    @kyle.nguyen 6 років тому +2

    This is a really great visualization of the Big O concept

  • @alonsorobots
    @alonsorobots 6 років тому +4

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

  • @itsiwhatitsi
    @itsiwhatitsi 6 років тому +68

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

    • @khushiaswani6500
      @khushiaswani6500 4 роки тому

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

  • @andrewdelgado9815
    @andrewdelgado9815 6 років тому

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

  • @Jemmeh
    @Jemmeh 6 років тому +4

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

  • @second_second_
    @second_second_ 3 роки тому +1

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

  • @shepbryan4315
    @shepbryan4315 Рік тому

    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

  • @zyrocks2
    @zyrocks2 6 років тому +25

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

    • @gemyellow
      @gemyellow 6 років тому +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'.*

  • @williamw8590
    @williamw8590 7 років тому +5

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

  • @classcube
    @classcube 7 років тому +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 9 місяців тому

    This deserves more views.

  • @almostbutnotentirelyunreas166
    @almostbutnotentirelyunreas166 7 років тому

    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.

  • @affshafee.rahman
    @affshafee.rahman 4 роки тому +1

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

  • @rebecaperez4472
    @rebecaperez4472 4 роки тому

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

  • @LetsBeHuman
    @LetsBeHuman 5 років тому +1

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

  • @vojtechfric9470
    @vojtechfric9470 7 років тому +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 7 років тому +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 7 років тому +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 6 років тому

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

  • @simonthelen5910
    @simonthelen5910 4 роки тому

    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.

  • @pc8505
    @pc8505 5 років тому +1

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

  • @mattwaters9008
    @mattwaters9008 3 роки тому +3

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

  • @carloslaguna7036
    @carloslaguna7036 3 роки тому +1

    How do you create your animations?

  • @bren007pie2
    @bren007pie2 2 роки тому

    Incredible quality

  • @FindusGame11
    @FindusGame11 6 років тому

    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

  • @neo_snakejazz
    @neo_snakejazz 3 роки тому

    Excellent video, thanks for making it available to us.

  • @Mu_Lambda_Theta
    @Mu_Lambda_Theta 5 років тому +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 5 років тому

      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

  • @sajaal-dabet148
    @sajaal-dabet148 2 роки тому

    This is so brilliant! Keep doing such videos plz

  • @rayerdyne
    @rayerdyne 4 роки тому

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

  • @gkmishra2009
    @gkmishra2009 7 років тому

    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

  • @karthiksantosh3475
    @karthiksantosh3475 4 роки тому

    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

  • @CarlosAlbertBR
    @CarlosAlbertBR 4 роки тому

    what a wonderful and clear explanation. thank you

  • @PrabhathDarshana
    @PrabhathDarshana 6 років тому +1

    WOW, That's pretty clear!! Thanks.

  • @martintirpak1033
    @martintirpak1033 6 років тому

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

  • @javierbg1995
    @javierbg1995 7 років тому +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#/

  • @kerryjackson6773
    @kerryjackson6773 5 років тому

    Awesome video, loved the metaphors!

  • @dimitrijep7872
    @dimitrijep7872 5 років тому

    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))

  • @marklu5521
    @marklu5521 4 роки тому +1

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

  • @karimk8551
    @karimk8551 6 років тому +1

    excellent explanation

  • @aidayana3253
    @aidayana3253 3 роки тому

    I really love the content and the way you share it

  • @grainfrizz
    @grainfrizz 6 років тому +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

    • @omerkaraca2939
      @omerkaraca2939 6 років тому +1

      you are the deep of man!!! thank you dude!

  • @MrKibujo
    @MrKibujo 6 років тому

    undefined behavior gives me unexpected great video.

  • @sudoku37
    @sudoku37 5 років тому +8

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

  • @maraud3r_
    @maraud3r_ 7 років тому

    Very well explained

  • @gingeral253
    @gingeral253 Рік тому

    Cool stuff

  • @aresxena6632
    @aresxena6632 6 років тому

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

  • @user-yd9xy3rb4x
    @user-yd9xy3rb4x 2 роки тому

    you rock man

  • @charlliemurphy8381
    @charlliemurphy8381 4 роки тому

    brilliant

  • @tsunghan_yu
    @tsunghan_yu 5 років тому

    excellent video!

  • @kneeboardcrasher
    @kneeboardcrasher 6 років тому

    This was a an awesome video!

  • @puglife1343
    @puglife1343 Рік тому

    not gonna lie, came for the thumbnail

  • @imadhamaidi
    @imadhamaidi 4 роки тому

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

    • @oolivergraham
      @oolivergraham 3 роки тому

      ua-cam.com/video/p8u_k2LIZyo/v-deo.html

  • @Malik-qh7wq
    @Malik-qh7wq 5 років тому

    Great! Thnx

  • @abeer141
    @abeer141 3 роки тому

    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

  • @LuvElaYay
    @LuvElaYay 6 років тому

    great video

  • @janmichaelbesinga3867
    @janmichaelbesinga3867 5 років тому

    I almost died when he say easy

  • @Idan-tc5rt
    @Idan-tc5rt 6 років тому +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).

  • @ikki2526
    @ikki2526 6 років тому

    thank you very very much from thai.

  • @srincrivel1
    @srincrivel1 6 років тому

    yo, this was really cool

  • @nguyenquangminh4814
    @nguyenquangminh4814 5 років тому

    omg thank you

  • @opus_X
    @opus_X Рік тому

    Bogosort #1!

  • @InstaCody
    @InstaCody 2 роки тому

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

  • @robotspgc
    @robotspgc 5 років тому

    How do you not have more subscribers?

  • @muhammadneanaa1611
    @muhammadneanaa1611 4 роки тому

    genius!

  • @Onnethox
    @Onnethox 3 роки тому

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

  • @knightonhd1144
    @knightonhd1144 4 роки тому

    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 5 років тому

    subscribed for guilty spark

  • @dotwarner17
    @dotwarner17 4 роки тому

    I'm one of the tomatoes!

  • @licolhavaiia2205
    @licolhavaiia2205 4 роки тому

    0:38
    "easy, right ?" sike

    • @DrRiq
      @DrRiq 4 роки тому

      that's the joke..

  • @TimeLordVictorious11
    @TimeLordVictorious11 7 років тому +1

    at 0:18 how many of you thought of church from RvB instead of halo? lol ua-cam.com/video/Rmc661a9IRY/v-deo.html

  • @Keriously
    @Keriously 5 років тому

    n!
    You heard it here first!

  • @meghanabhange13
    @meghanabhange13 7 років тому

    Any other Whovians Jumped when they saw the TARDIS?

  • @Annettewalker-nq2jf
    @Annettewalker-nq2jf 5 років тому +1

    i came here for pokemeon

  • @killerwhiteshark1797
    @killerwhiteshark1797 4 роки тому

    I clicked on this because the Pokemon

  • @BruceRicard
    @BruceRicard 2 місяці тому

    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.

  • @EUROSPORTS4TECH
    @EUROSPORTS4TECH Рік тому

    Gg

  • @dailytimelapse8414
    @dailytimelapse8414 7 років тому +17

    this video is confusing... lolol

    • @MukeshRajput1982
      @MukeshRajput1982 6 років тому

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

  • @DanT-iu6oc
    @DanT-iu6oc 4 роки тому +1

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

  • @salek991
    @salek991 6 років тому

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

  • @gazorb2
    @gazorb2 5 років тому

    I don't understand this one at all.

  • @webgpu
    @webgpu 6 років тому

    pokemon analogy? what's your audience? kindergarten?

    • @LetsBeHuman
      @LetsBeHuman 5 років тому

      why not kindergarden kids start learning these.