Introduction to Big-O

Sdílet
Vložit
  • čas přidán 27. 07. 2024
  • A short introduction to Big-O notation.
    Data Structures Source Code:
    github.com/williamfiset/algor...

Komentáře • 84

  • @0215story
    @0215story Před 6 lety +75

    I think there is a typo around 11:25. It should be 3n*(40 + n^3/2) = 3n * 40 + 3n^4/2. Isn't it?

    • @WilliamFiset-videos
      @WilliamFiset-videos  Před 6 lety +25

      Oops! I can't multiply it seems ;P The overall answer is still O(n^4) though.

    • @0215story
      @0215story Před 6 lety +5

      you mean it's not a typo? :)

    • @WilliamFiset-videos
      @WilliamFiset-videos  Před 6 lety +14

      byeonghan baek Sorry that's what I'm trying to imply, you're correct.

    • @0215story
      @0215story Před 6 lety +7

      Thanks! Your vedio are very useful and clear explaining ! 😄

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

      @@Ruturaj22 😂😂😂😂

  • @joe44850
    @joe44850 Před 6 lety +211

    Nice comments, everyone seems to understand this. It's always refreshing to find I'm still the dumbest guy on youtube.

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

      hahahhaha

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

      Are you homeless now? Did you give it all up?

    • @joe44850
      @joe44850 Před 4 lety +19

      @@alottafugina9116 No, I fooled a company into hiring me and now I write a lot of quadratic methods.

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

      @@joe44850 then I guess now I am the dumbest on CZcams.

    • @PickleRickkk-cy9xb
      @PickleRickkk-cy9xb Před 6 měsíci +4

      ​@@alottafugina9116 Hey, are you homeless now? Did you give it all up?

  • @Vennard98
    @Vennard98 Před 4 lety +29

    This is the first video I've found that actually shows how to find the function of a method. Every other video just goes straight to the math and graphs (which I do understand) however without explaining relation to the code, so this is a life-saver considering I have an exam in 1.5 hours and couldn't figure this out for the life of me. Thank you so much!

  • @AntonMiasnikov
    @AntonMiasnikov Před 4 lety +9

    Thank you, human. It is the best short explanation I found on the net.

  • @williammyers3706
    @williammyers3706 Před 5 lety +5

    Thanks Bill. This is the proper level of introduction for one of my CS classes.

  • @ajayboseac01
    @ajayboseac01 Před 3 lety +22

    Big-O doesn't necessarily only indicate the worst case. It indicates the upper bound of the function. Big-O, omega and theta can be used interchangeably to indicate worst, best or average time complexity.

    • @kaustubh_ramteke_07
      @kaustubh_ramteke_07 Před 2 lety

      so what's the point of theta, omega

    • @supriyamanna715
      @supriyamanna715 Před 2 lety +3

      coming here after Abdul bari;s videos!!

    • @supriyamanna715
      @supriyamanna715 Před 2 lety +1

      @@kaustubh_ramteke_07 In some cases, you can't get the exact average case (that is big theta), there you have to use the other two to get an idea. here omega is the upper lower bound and the big O is the upper bound, when both are same (or at least converging to the same point/functions) we can say that the average case (theta) is the same.
      Big O is upper bound of a function, and if I run an algo which is giving me the upper bound for a particular case(let's say worst case): I can at least derive big O and big Omega
      So as a verdict, on a function, we can get any case depending on the algo used.

    • @rohangowda2001
      @rohangowda2001 Před rokem

      true!

  • @codewarrior7072
    @codewarrior7072 Před 7 lety

    Refreshing and easy to follow tutorial, thank you!!

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

    too good... finally understood with practical examples

  • @alexcons
    @alexcons Před 7 lety +10

    Thanks for the video, great tutorial as always!

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

      did you get anything out of this? job anything or left it after 4 videos?

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

    Great examples and explanations!

  • @anokaggrey3109
    @anokaggrey3109 Před 2 lety

    Best Big O video I have come across so far.

  • @dustinspencer8593
    @dustinspencer8593 Před 2 lety +11

    Great video! I am going through your playlist as a refresher before I start my masters program. Thank you for creating them.
    With respect to Big-O notation, however, I believe that you have made a small mistake with semantics. Big-O does not necessarily represent worst-case. Worst, average, and best case generally refer to the state of the input data (i.e., best case for a sorting algorithm would be the scenario where the data is already sorted). Big-O, on the other hand, represents an upper bound on how much time the algorithm will take to process an arbitrarily large input.
    At least, that is how I understand it.

  • @architect8675
    @architect8675 Před 5 lety

    WELL; you're an exellent teacher.

  • @saurabhrudrawar5887
    @saurabhrudrawar5887 Před 6 lety

    can u post another video on this with a some tough examples?
    i am getting it finally so would like to know it better :)

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

    Nice tutorial...thanks

  • @Tholkappiar
    @Tholkappiar Před 2 lety

    You deserve a reward👍🏻👍🏻👍🏻

  • @MustafaAhmedAbduljabbar

    Great video thanks :)

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

    8:28 it should be multiplied by n because we are not considering the time for outer loop...
    Nsquare is only for inner loop...
    Please explain me

    • @jesso6670
      @jesso6670 Před 2 lety +1

      N multiple by n square which is largest among two is n square

  • @JG-qs8mx
    @JG-qs8mx Před 6 lety +2

    6:27 can you please explain how it is linear time in right while loop? i is incremented by 3 , so the loop won't run n times. so how it will still give O(n).

    • @WilliamFiset-videos
      @WilliamFiset-videos  Před 6 lety +15

      As explained earlier in the video we don't care about constant additive and multiplicative factors. Since the loop increments by +3 each time the loop will finish three times faster. This is a multiplicative speedup so it will only require one-third of the operations proportional to n for n/3 total operations. Hence, in big O: O(n/3) = O(n) because we ignore the multiplicative 1/3

    • @maddcobra1
      @maddcobra1 Před 5 lety

      Thank you WilliamFiset for explaining.

  • @sabergun
    @sabergun Před 5 lety +3

    I like that my maths is bad and I can still follow this, credit to the author for that - thanks.

  • @Cat_Sterling
    @Cat_Sterling Před rokem

    Is there a typo in the Binary Search pseudocode? At 8:36 in the end of the while loop, the variables "lo" and "hi" should be called "low" and "high", correct?

  • @umairalvi7382
    @umairalvi7382 Před 4 lety

    I was expecting that you will explain why the complexity of binary search is logn.

  • @goodvibes1581
    @goodvibes1581 Před 2 lety

    Best as always

  • @cablu1
    @cablu1 Před 4 lety

    Around 11:25 where it's 3n*(40+n^3/2) breaking down the problem it makes sense: 3n since it's in the outer loop but in the inside loop why is n^3/2, is it because it's nested 2 loops deep?
    Trying to figure it out but the only logical thing is that it's nested 2 levels deep :/

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

    Small typo around 3:30, it says quadric instead of quadratic.

  • @danimanabat5791
    @danimanabat5791 Před 3 lety

    Thank you!!

  • @tilakmadichettitheappdeveloper

    By dominant, you mean the term in the polynomial with the highest degree , dont you ?

    • @WilliamFiset-videos
      @WilliamFiset-videos  Před 7 lety +3

      Yes, that's correct! But it could also mean another stronger term such as 2^n or n!

  • @dejiomofaiye5660
    @dejiomofaiye5660 Před 3 lety

    In big O example where there are two for loops where the inner loop starting value j is sets to i. I want to believe the j value will now be 1. And also the question of what is (n) + (n -1) |+ (n-2) etc how did (n-1) become(n+1) and why are you dividing by 2

  • @marialynanding6535
    @marialynanding6535 Před rokem

    Can I ask?
    What does it called on constant time to factorial time I just wanted to know because it is necessary for my presentation I want to share to them what does it called ..
    Thank you.🙏🏾

  • @esa2236
    @esa2236 Před 6 lety

    9:04 is a famous algorithm search function. I think I get why you disregard the first half or second half because according to runtime output, the entire for loop will execute regardless whether the value was found or not. To prevent the entire loop from going all the way, and to save time, you change the boundary to mid + 1 or mid - 1 immediately to prevent the entire array from being searched and to save runtime output.

  • @mohamedbadrismail4510
    @mohamedbadrismail4510 Před 2 lety

    Could you share the slides, plz??

  • @_productivity__nill_1131

    So, multiplying two for loops will always equal n²?

    • @WilliamFiset-videos
      @WilliamFiset-videos  Před 5 lety +2

      No, a single loop doesn't always have a time complexity of O(n), so the product of two loops doesn't always have a complexity of O(n^2)
      For example the following has a complexity of O(sqrt(n) * n)
      for (i = 0; i < n; i = i*i) {
      for (j = 0; j < n; j++) {
      // some O(1) operation
      }
      }

    • @angel-ig
      @angel-ig Před 5 lety +3

      @@WilliamFiset-videos Nop, that's an infinite loop, 'i' will be always 0

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

    Why is J going from 10 to 50 in the last example?
    Cheers

    • @WilliamFiset-videos
      @WilliamFiset-videos  Před 6 lety +2

      Just to throw some spice into the mix. The loop will execute 41 times so it's still a O(1) operation.

  • @IamMQaisar
    @IamMQaisar Před 5 měsíci

    Shouldn't there be "3n * 40" instead of (3n/40)?
    Also,
    Inner loop runs 41 times instead of 40
    So,
    Eventually making it, 3n*41 which is 123n.
    Am I right? 11:30
    Eventually answer remains o(n^4)

  • @vophihung1598
    @vophihung1598 Před 2 lety

    good job anh

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

    8:21. How does O((n^2)/2 + n/2) get us to O(n^2)?

  • @anthonyditizio4178
    @anthonyditizio4178 Před 4 lety

    thanks

  • @JorgeAmengol
    @JorgeAmengol Před 2 lety

    1:05 Although largely used by computer scientists, I think those notations were invented by mathematicians.

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

    "practical examples coming up..."
    can i have the link of your examples plz if there is any? thank you

  • @akashsinghal1073
    @akashsinghal1073 Před rokem +1

    czcams.com/video/zUUkiEllHG0/video.html at 8:23 time i understand for inner loop time complexity should be "n(n+1)/2" but shouldnt we multiply external loop "n" complexity to make it n3 ?

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

    Taking notes in the comments to feed the CZcams algorithm:
    Complexity= How much time and space does your algorithm need to finish. Big O Notation only cares about the worst case. It gives an upper bound of the complexity as the input size becomes arbitrarily large.

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

    I'm sure you heard this before bu you sound like Christopher Welch from Silicon Valley

  • @praveenrawat6574
    @praveenrawat6574 Před 2 lety

    charlie?

  • @BubTheOriginal
    @BubTheOriginal Před 2 lety

    Pro tip :
    Play at 1.5x speed.

  • @prowlus
    @prowlus Před 3 lety

    Cast in the name of god ye not guilty

  • @Tony-ow9bo
    @Tony-ow9bo Před 4 lety +1

    For the love of god get something that lets you circle or underline the parts you're talking about. This is for the birds.

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

    Am I the only one who is not able to understand mathematical equation at 4:00?

  • @GodSnake001
    @GodSnake001 Před 2 měsíci +1

    I understand nothing☻

  • @IAmGDUB
    @IAmGDUB Před rokem

    This junk make no sense to me and it's making me mad bro

    • @jz4079
      @jz4079 Před 9 měsíci

      same lmao