The Ultimate Big O Notation Tutorial (Time & Space Complexity For Algorithms)

Поделиться
HTML-код
  • Опубликовано: 26 дек 2024

Комментарии • 292

  • @JasonOgasian
    @JasonOgasian 4 года назад +161

    The way the camera moves and the speaker is acting makes it feel like someone is about to bust in and erase all his whiteboards at any moment 😂
    Great video!

    • @BackToBackSWE
      @BackToBackSWE  4 года назад +10

      Hahahaha that was the case. 2nd video I ever did

    • @naskavian7041
      @naskavian7041 4 года назад +14

      This is the Blair Witch Project of Big O :)

  • @geraldcerna516
    @geraldcerna516 4 года назад +75

    I think this is one of those videos that will really keep you up rather than making you want to go to sleep. It's not boring. And the explanations are so lit.

  • @BackToBackSWE
    @BackToBackSWE  6 лет назад +43

    Table Of Contents: (I want to redo this video, the video is overexposed in lighting)
    Messing Around 0:00 - 0:17
    Big O Introduction 0:17 - 0:43
    O(n^2 )Bounding Example 0:43 - 1:33
    Upper Bounding 1:33 - 1:51
    The O(n) Mistake 1:51 - 2:38
    Notating min() & max() 2:38 - 2:56
    O(1) "Constant time" 3:07 - 3:46
    O(log(n)) 3:46 - 5:43
    O(n) "Linear time" 5:43 - 6:30
    O(n * log(n)) 6:32 - 8:09
    O(n^2) 8:09 - 9:09
    O(2^n) "Exponential time" 9:09 - 9:40
    O(n!) "n-factorial" 9:40 - 10:55
    Considering Tradeoffs 11:01 - 11:34
    Why To Optimize Time 11:34 - 11:58
    Space Complexity 12:02 - 14:38
    DO. NOT. GUESS. 14:44 - 15:40
    Leveraging Our Complexities 15:40 - 16:30
    Wrap Up 16:30 - 16:59
    HUGE IDEA. Time complexity must be at least the space complexity. If you deduce a complexity and this does not happen then something is wrong. This is because to use space we must use time (space is tightly bound to the time that it takes to use it). Due to this relationship, space ALWAYS has at least a loose lower bound on time if not very close.
    I will make a part 2 to this video to expand with nuances like this in complexity theory.

    • @igo1071
      @igo1071 6 лет назад +3

      Back To Back SWE excellent explanation God bless🙏🏼

    • @BackToBackSWE
      @BackToBackSWE  4 года назад +1

      thanks

  • @bakor-org
    @bakor-org 5 лет назад +56

    Simply the best explanation on the whole internet. I really like how he points out what he has done wrong in the past so we don't do the same. Thank you. :)

  • @victorariasvanegas7407
    @victorariasvanegas7407 4 года назад +8

    This is the kind of video by which people like me, who are introducing to this world, will buy access to your platform, never stop making them, excellent explanation bro, I finally understood this concept.

  • @ReBufff
    @ReBufff 2 года назад +2

    Out of the ones I checked out, this actually explains WHAT the concept is before jumping into some arbitrary code. Thanks!

    • @BackToBackSWE
      @BackToBackSWE  2 года назад

      Glad to hear that

    • @BackToBackSWE
      @BackToBackSWE  2 года назад

      Subscribe to our DSA course with a flat 30% discount for some amazing content b2bswe.co/3HhvIlV

  • @brAzzi64
    @brAzzi64 5 лет назад +81

    Never seen that many whiteboards before.

  • @TimothySusanto
    @TimothySusanto 4 года назад +8

    Finally an introduction to Big O that actually makes sense!! Thank you.

  • @MTKClassy
    @MTKClassy 2 года назад +2

    From the bottom of my heart, thank you so much for the gold knowledge

    • @BackToBackSWE
      @BackToBackSWE  2 года назад

      Thank you, glad you liked it 😀
      Do check out backtobackswe.com/platform/content
      and please recommend us to your family and friends 😀

  • @jorossbarredo
    @jorossbarredo 5 лет назад +7

    Dude, this video introduction to Big O is what I needed! Blessing from the gods!

  • @lazymacs2823
    @lazymacs2823 4 года назад +13

    Nerd: "you can't buy time"
    RTX3090: allow me to introduce myself

  • @andrewgray3112
    @andrewgray3112 3 года назад +2

    THE BEST, CLEAREST BIG-O VIDEO BREAKDOWN YOU WILL FIND ON RUclips!!!
    Thank you so much for making this, it has really helped me understand things better!

  • @joacortez3423
    @joacortez3423 3 года назад +1

    This video is one of the most complete and engaging i have seen

  • @kainguyen4259
    @kainguyen4259 4 года назад +10

    Wow bro you really kill the n * log (n) part. Thank you!

  • @VictorGarcia-si8wy
    @VictorGarcia-si8wy 2 года назад

    "We can buy memory, but we can't buy more time." That's some deep stuff right there.

  • @MrJaddamo
    @MrJaddamo 5 лет назад +1

    Ben, you are the MAN. I wish I could attend a Bootcamp taught entirely by you. I go to Columbia and it's extremely difficult to keep up with the speed at which the curriculum is taught. Your videos really help create a baseline of understanding.

    • @BackToBackSWE
      @BackToBackSWE  5 лет назад +1

      haha, I am but a man, a lot of videos left to make

    • @user-gp8fr1nd3w
      @user-gp8fr1nd3w 5 лет назад

      oh my god same I got to Columbia now. Were you doing data structures?

  • @lien-chinwei4815
    @lien-chinwei4815 5 лет назад +3

    Thank you for the first 11 min presenting solid examples related to each big Oh. Fantastic work.

  • @dizhang3157
    @dizhang3157 5 лет назад +4

    thank you soooo much!!! seeing you so passionately talking about this encourages me to learn more about it. great great work

  • @azuboof
    @azuboof Год назад

    What an amazing lad. Hope he reaches heights. thanks for the clear explanation

    • @BackToBackSWE
      @BackToBackSWE  Год назад

      Thank you, appreciate it 😄 Also check out our Free 5 Day DSA Interview Prep Mini-Course - backtobackswe.com/ 🎉

  • @BodySnatchers-v5f
    @BodySnatchers-v5f Год назад +2

    A tripod is a portable three-legged frame or stand used as a platform for supporting the weight and maintaining the stability of some other object. In photography, a tripod is used to support, stabilize and elevate a camera, a flash unit, or other photographic equipment. Tripods are available in various sizes and materials and can be purchased from many retailers such as Amazon and Best Buy.

    • @kushalchawla4395
      @kushalchawla4395 Год назад

      🤣exactly my feeling right now while suffering from a headache after watching this.

  • @syedrizvi2687
    @syedrizvi2687 3 года назад +6

    Love your energy bro! Thank you for your great explanations to so many concepts

  • @muhammadfaisalhyder4012
    @muhammadfaisalhyder4012 4 года назад +1

    To be honest, this is by far the best one!
    now please make a vid where you go through actual code, I am talking about actual code, not some rubbish nested for loops just to print the name or number. That will help in practically applying these concepts.

  • @georgesmith9178
    @georgesmith9178 4 года назад +1

    Thanks for the tutorial - thumbs-up given. The most important comment you made was toward the end of the video: it is impressive to state the space-time complexity. For interviews, it always helps to create an air of authority, regardless of how practical it would be to write production code that relies on the what you are being tested, which in all likelihood you never will :)

  • @zihangjin9186
    @zihangjin9186 3 года назад +1

    Thank you! It helps me (a beginner) get a brief understanding of all those concepts in such an easy way.

  • @rtr0spct210
    @rtr0spct210 9 месяцев назад

    5:59 really helped things click for me, thanks!

  • @sbv5220
    @sbv5220 3 года назад

    I am glad you didnt use a potato to record this, instead you opted for a bowl of jello. I was dizzy at times, but overall. Great content!

  • @pavithravenkatesan7216
    @pavithravenkatesan7216 5 лет назад +4

    Very simple to understand. The teaching method is unique and efficient :) Thanks a lot for doing this :)

  • @044_karan8
    @044_karan8 4 года назад +1

    This is the best video on big Oh.. I also like ur style bro

  • @SumitSahoo
    @SumitSahoo 5 лет назад +1

    Simplest explanation of Big O period.

  • @rohantohaan8684
    @rohantohaan8684 4 года назад +2

    Prepping for Fall hiring season. Botta watch/learn from your videos

  • @anuchechi9917
    @anuchechi9917 5 лет назад +2

    wow! It is the ultimate Big O notation tutorial. Awesome work, please keep doing the same. Thanks a lot.

  • @Elidangerfield1111
    @Elidangerfield1111 5 лет назад +1

    My god im so glad I found this channel.

  • @Ashmole3
    @Ashmole3 2 года назад

    Your videos have been really helpful to me and it seems like some of the things that trip me up sometimes also tripped you up as well.

  • @noahpineda3419
    @noahpineda3419 5 лет назад +2

    I love this channel. I wish I could like videos multiple times haha.

  • @stpetar213
    @stpetar213 4 года назад +2

    Great explanation! Thank you.

  • @moddatrucka
    @moddatrucka 5 лет назад +29

    Good Explanation! A camera tripod would have helped though :)

    • @BackToBackSWE
      @BackToBackSWE  5 лет назад +17

      this was my second video ever jeez guys

  • @alpavaidya412
    @alpavaidya412 4 года назад +1

    Very good explanation...unlike other videos I can relate to ur teaching cause u stress on the points which u urself found difficult to understand

  • @gauravbhisikar6381
    @gauravbhisikar6381 5 лет назад +2

    Thanks you
    My all doubt about algorithmic complexity is now cleared🙂

  • @peejaylero3467
    @peejaylero3467 4 года назад

    So very proud of this video. I love it! I was just thinking today after about 6 years of higher education in the US (undergrad and grad), I've never had a black lecturer/instructor. Never! Not even outside of my CS classes. Thank you for this :)

  • @jknair0
    @jknair0 3 года назад

    I just felt like i watched video at 2x speed. so much useful content in so less time.

  • @simoneckerstorfer4174
    @simoneckerstorfer4174 4 года назад +1

    Thanks for this video!

  • @stannikolov
    @stannikolov 2 года назад

    Watching this was fun. Thank you!

    • @BackToBackSWE
      @BackToBackSWE  2 года назад

      Thank You, Glad you liked it.
      Do check out backtobackswe.com/platform/content
      and please recommend us to your family and friends :)

  • @leo71648
    @leo71648 3 года назад

    It forms what it look like a triangle--> Didn't understand this point for O(n2), how it formed a triangle?

  • @AlphaZeroOmega
    @AlphaZeroOmega 4 года назад +1

    Studying the behavior and complexity of algorithm can be super confusing, especially considering mathematics is involved and not all developers are well schooled beyond basic algebra.
    This is a pretty good introduction in my opinion, to get your head around the basics.

  • @srikarvoleti8950
    @srikarvoleti8950 4 года назад +1

    Clear and precise. If I get an A on my final tomorrow, I'll dedicate it to you.

  • @angeloliwanag2619
    @angeloliwanag2619 4 года назад +1

    This video is GOATED

  • @rahulpadalkar6237
    @rahulpadalkar6237 3 года назад

    Is the triangular work @ 8:45 a graph of number of comparisons (y) vs index (x) ? That's how you would get a triangle imo. Also from what i know about work (from physics) work is calculates as the area under the graph. Since it is a right angle triangle, we can calculate the area as 1/2 * base * height which equals n^2/2 which then gives us the complexity of n^2.

  • @emekatimothyiloba699
    @emekatimothyiloba699 10 месяцев назад

    Thanks. You are a great teacher

  • @shanthanreddy2524
    @shanthanreddy2524 4 года назад +2

    could u make another video with a detailed explanation for the space complexity
    ?
    Thanks, Sai

  • @powerhouse5424
    @powerhouse5424 3 года назад

    Thanks for saving my life!

  • @Series0Tubes
    @Series0Tubes 4 года назад +1

    Again, I love these videos. Thank you very much!

  • @soverby5
    @soverby5 4 года назад +1

    I just love these videos, the presentation style really resonates with me. Great job.

  • @mahakshmalhotra7634
    @mahakshmalhotra7634 4 года назад +1

    Amazing explanation!! great job!!

  • @allierobinson9914
    @allierobinson9914 4 года назад +2

    Thanks for making this interesting presentation! I love your energy!

  • @tathagatnegi5923
    @tathagatnegi5923 4 года назад +2

    Great video❣️
    Helped me alot
    I have watched many videos on big O notation but no1 has ever explained it in this easy and simple manner
    Great job sir👍❣️

  • @123Azns
    @123Azns 5 лет назад +4

    amazing!!! Better than stackoverflow, and professors that taught me.

    • @BackToBackSWE
      @BackToBackSWE  5 лет назад

      haha, I'm working on redoing this video. It is badly exposed.

    • @123Azns
      @123Azns 5 лет назад +2

      Back To Back SWE hahah could you give more examples in the new vid?

    • @BackToBackSWE
      @BackToBackSWE  5 лет назад

      @@123Azns yeah. it will be amazing.

  • @abigailgonzalez7857
    @abigailgonzalez7857 4 года назад +1

    This is the best explanation! thank you so much!

  • @ibrahimk6729
    @ibrahimk6729 4 года назад

    Great video, interview bytes at last on (15:43) was really impressive..

  • @rahil_rehan
    @rahil_rehan 5 лет назад +1

    In O(n) complexity, when it is 3*n the linear graph line doesn't become sterper but shifts up 3 units.
    Great explanation!

    • @BackToBackSWE
      @BackToBackSWE  5 лет назад +3

      What? Can you timestamp it? Multiplication by a constant factor makes a line steeper. Shifting up is addition.

    • @rahil_rehan
      @rahil_rehan 5 лет назад +3

      @@BackToBackSWE Yeah! Sorry, I was just confused between multiplication and addition on functions. You again made it clear. Thanks alot!

  • @bluejprogramming184
    @bluejprogramming184 4 года назад

    Sir, can we say O(log(n)) means "half of n or half of the common runtime" of the algorithm? So, if anyone asks that what is O(n*log(n)), we can say its O(n*(n*1/2)) which is O(1/2*n^2) and drop the constant which becomes O(n^2)?? Means O(n*log(n)) = O(n^2)???

  • @rogersteele2835
    @rogersteele2835 5 лет назад +1

    Great video it really clarifies Big O in relation to the search types

  • @DanielSColao
    @DanielSColao 4 года назад

    Thanks for uploading videos like this!

  • @trmnatr21
    @trmnatr21 5 лет назад +2

    Holy shit. It makes sense. Didn’t expect that. Thanks lol.

  • @kidpesto
    @kidpesto 2 года назад

    This man doesn't use dots for bullet points he uses transmutation circles

  • @ramizrizwan3057
    @ramizrizwan3057 2 года назад

    Such a great and helpful video. You explained this sos well

  • @AshishSingh-753
    @AshishSingh-753 5 лет назад +1

    Hey your are best content creator

  • @ahmedboutaraa8771
    @ahmedboutaraa8771 4 года назад +1

    i never thought that big O is so easy till now

    • @BackToBackSWE
      @BackToBackSWE  4 года назад

      ye

    • @SaiKumar-vo2ek
      @SaiKumar-vo2ek 3 года назад

      which language is best for DS&A? Please respond to my question

    • @ahmedboutaraa8771
      @ahmedboutaraa8771 3 года назад

      @@SaiKumar-vo2ek I think it depends on your goal, if you want to get into competitive programming then C++ might be a good option. otherwise use a high-level language like python, ruby, or javascript where you don't have to worry about the lengthy syntax, and implement your own DS on top the existing one.
      NOTE: I'm not an expert so take with a grain of salt and do your own research.

  • @Mona19_05
    @Mona19_05 4 года назад +2

    the best explanation of big O thanks! camera wasn't stable enough :/

  • @DataVids
    @DataVids 4 года назад +1

    very helpful thanks for making this video.

  • @meyringvanderwalt72
    @meyringvanderwalt72 5 лет назад +1

    Love this guy! Keep it up!

  • @HN-if9qt
    @HN-if9qt 4 года назад

    At 8:34, how did you go from 3 comparisons of an array to form a triangle?

  • @MAliRamazani
    @MAliRamazani Год назад

    Very good! I just wish the video footage wasn't shaky!

    • @BackToBackSWE
      @BackToBackSWE  Год назад

      Glad it was helpful and sorry about the footage! 😄 Also check out our FREE DSA Interview Prep Mini-Course - backtobackswe.com/ 🎉

  • @xiuwenzhong7375
    @xiuwenzhong7375 5 лет назад +1

    very good explanation, watch your video everyday on my train to office is my habits now.

  • @BugattiVeyron1
    @BugattiVeyron1 5 лет назад +1

    Subscribed you did a good job explaining the material thanks

  • @abdullahclementabdulshekur6736
    @abdullahclementabdulshekur6736 2 года назад

    very clear and on point

    • @BackToBackSWE
      @BackToBackSWE  2 года назад

      Happy Holidays! Really glad to help 🎉 Do you know about the BacktoBackSWE 5 Day Free Mini Course? Check it out here - backtobackswe.com/

  • @momenaboessa
    @momenaboessa 4 года назад

    That was AWESOME ✌🏻👨‍💻🔥🔥🔥🔥

  • @gianm1064
    @gianm1064 2 года назад

    Amazing content!

  • @jonasmaoh1371
    @jonasmaoh1371 2 года назад

    Doesnt that make nlogn then 8 times 3 making it 24 as complexity????

  • @gvartchanel144
    @gvartchanel144 4 года назад +1

    Great explanation, thank you

  • @mistermomo2904
    @mistermomo2904 4 года назад +3

    8:08 woah woah... no need to get personal

    • @BackToBackSWE
      @BackToBackSWE  4 года назад

      old video - sorry if I said something weird

    • @mistermomo2904
      @mistermomo2904 4 года назад +1

      @@BackToBackSWE lmao no u just said an O notation of n^2 was innefficient
      i cant do better >:

  • @올롱볼롱
    @올롱볼롱 4 года назад +1

    do you have any book recommendation to study this subject?

    • @BackToBackSWE
      @BackToBackSWE  4 года назад

      Just the internet

    • @thesickbeat
      @thesickbeat 4 года назад

      Try "Data structures and problem solving using Java" by Mark Allen Weiss. The concepts transfer to other languages too.

  • @ericfricke4512
    @ericfricke4512 4 года назад +1

    I like this dude.

  • @bmack7536
    @bmack7536 3 года назад

    This is my question besides all this, plain English plain Math. int x = 3; right? O.K. what "operators" create more complexity? Do 2 operators on 1 line square the time? Each variable has a size in memory, int, char, float. so in PEMDAS notation per operator what creates complexity? I think I will make my own channel. thanks anyway for the try.

  • @ben17449
    @ben17449 5 лет назад +1

    Insertion Sort is O(n) I believe not O(n^2) could have just heard it wrong though

  • @mdrsoooow
    @mdrsoooow 3 года назад

    dude i love you

  • @Peter-Bear
    @Peter-Bear 4 года назад +1

    You sir are god among men

  • @user-vq6yi7se2r
    @user-vq6yi7se2r 3 года назад

    Great one!!!!!!!!!

  • @leonelhernandez6027
    @leonelhernandez6027 5 лет назад +1

    Hi mate, have you seen the Berlekamp-Massey algorithm? The time complexity is defined as O(n^2), where n is the input data. Can I asume the same space complexity?

    • @BackToBackSWE
      @BackToBackSWE  5 лет назад

      No I haven't :/

    • @leonelhernandez6027
      @leonelhernandez6027 5 лет назад

      No worries. I was doing this analysis and basically the time complexity can be calculated according to biggest tasks involved, where n^2 steps are taken. When calculating the space complexity is a different story because, I was mainly considered the vectors that I used, in my case 4.

  • @yashwanthnerella9935
    @yashwanthnerella9935 5 лет назад +2

    The clarity!

  • @derreck3424
    @derreck3424 5 лет назад +2

    Very low production quality, but high quality content. Thank you :)

    • @BackToBackSWE
      @BackToBackSWE  5 лет назад +2

      hahahahaha, you found my 2nd video ever

    • @EllAntares
      @EllAntares 4 года назад

      I dunno, there is nothing better than white\blackboard explanation XD

  • @vinodphalke2121
    @vinodphalke2121 2 года назад

    Awesome teaching & white board also

    • @BackToBackSWE
      @BackToBackSWE  2 года назад

      Thank you, glad you liked it 😀
      Do check out backtobackswe.com/platform/content
      and please recommend us to your family and friends 😀

  • @mareshbm2731
    @mareshbm2731 4 года назад

    thanks a lot brother.......n im your new subscriber!

  • @zoe28i90
    @zoe28i90 5 лет назад +25

    Aw he's so cute

  • @jwilliams8210
    @jwilliams8210 5 лет назад +1

    Nice job!

  • @jerrywu5797
    @jerrywu5797 6 лет назад +3

    Talking about time complexity, it's great to watch your video and do some further study on it because it's almost a basic skill during interviews. At least from my previous interview experience, both facebook and bloomberg interviewers were willing to know if I could accurately state time & space complexity. Highly recommend Cracking the Code Interview Chapter VI. Big O, where you would deeply understand the practical ways of solving this issue.
    The answer here clearly explained how we should calculate time complexity for the recursion calls: stackoverflow.com/questions/43298938/space-complexity-of-recursive-function

    • @BackToBackSWE
      @BackToBackSWE  6 лет назад

      Nice, thank you for sharing.

    • @nolan412
      @nolan412 5 лет назад

      new WhizBangArray(n) # picks the best container type for n

    • @nolan412
      @nolan412 5 лет назад

      "They don't OOP!?"

    • @nolan412
      @nolan412 5 лет назад

      Come on lazy iterator! 😜

    • @nolan412
      @nolan412 5 лет назад

      I got the job!

  • @KyzylMartan
    @KyzylMartan 5 лет назад +1

    Cool! Great job, thank you!

  • @marlhex6280
    @marlhex6280 3 года назад

    Bruh I need more practice on this! What can I do?

  • @shakilkhan4306
    @shakilkhan4306 2 года назад

    love you man...

  • @bhishma620
    @bhishma620 Год назад

    Subscribed ❣️✨

  • @Finnalychangedmyname
    @Finnalychangedmyname 4 года назад +1

    are you in a whiteboard store