Genuinely informative, I really appreciate the breadth of your knowledge and how you use to to explain things in a concise way from multiple perspectives. Your content really helps me understand concepts I would've never thought I could grasp an understanding of and feel less intimidated about the learning process in general. Thanks!
Fantastic video as usual Tim! Finishing up my first view of it. Thorough explanation. Would like to see 2-4 examples per any given inefficient algorithm and show how to make each more efficient in terms of Big O notation. Thank you for an incredible video.
Amazing tutorial! Everything clearly explained and presented. This is a must watch video for everyone who is trying to start in the software engineering field as well as computer science!
Would like to see more on the other time complexities and also more on all algorithms from easy to advanced and showing examples of when each can be used in real world situations
Thank you so much! I've watched so many of your tutorials and they've helped me so much to where it's definitely worth subscribing to your ProgrammingExpert course!
This video is not good Tim...... It's GREAAAAT!!!!!!!!! The maths explanations were kinda funny at times but you nailed it. Big O was hard for me to understand to do it quick enough but you made it easy. Kudooos
This is super helpful, Tim! I'm new to the field and have yet to have this concept explained in such a digestible manner. Working through ProgrammingExpert as well which it has been invaluable.
Hey Tim,I am always edified anytime I watch your video,I really wish you can make a video about cloud computing,I really need to know what path to follow to become a cloud engineer,I would be glad if you could kindly help me with that man.
love your content Tim! And this was indredibly enlightning. When I studied elementary number theory we talked about the big O notation but I always felt like I did not understand the point of having such a notation. Now, with these programming examples it feels much more intuitive and I can much clearly see the relevance of this notation.
Good video Tim , watched like 4 or 5 video about Big O notation could't still perfectly get it until you did a video about it hope you do for other Notation
For logarithmic time complexity (43:33), say that n is being divided by 2 over and over again until it reaches 1 and we want to calculate how many times these divisions happen. You can think of it like this : n / 2 / 2 / 2 ... / 2 = 1 let's say that the division happened k times, that makes the equation like this: n / 2^k = 1 2^k = n k = log2(n) So the number of divisions is around log2(n).
Loving this tutorial, really appreciate it :D I'm on question 7 right now, if we assume that starting input n > 0 then the function never ends as it gets down to n=1 which halves to 0.5 and rounds back to 1. I know this wasn't the point of the question, just something I noticed :')
I'm watching your tutorials, and I'm thinking about what you said about the importance of developing good communication skills. I've watched plenty of coding tutorials that, yeah, all the information is there, but I fall asleep halfway through and barely learn anything. Your tutorials are different. You're so good at articulating what is going on, even if it's hard to explain. Do you have any resources you could recommend for improving communication skills? Even as a 28 year old, I feel like I'm very socially awkward, and struggle to clearly communicate what I am thinking.
Great video! I find it funny that the last example is O(n!) because it literally implements a factorial by repeatedly adding 1 😂. A normal implementation would be linear.
33:25 Actully since nums2 (m) is always less than nums1 (n) or it will raise an error, we can replace m with n as it will always be less and thus we have a time complexity of O(n)
Great video, Tim! One thing that I was curious about was whether it matters what the base of the logarithm actually is. Since constant coefficients don't matter for Big O notation, and change-of-base rule can be used to turn any logarithm into a different base using a constant factor (i.e. log2(x) = logb(x)/logb(2)), does the distinction of saying log2 even matter for Big O? Perhaps I'm missing something here or it's just a convention to use log2?
Great question! Usually u can get away with just using log, however if you want to be most accurate then you use the actual base. Like u said u can write it as a constant and remove the base by writing in the format u suggested and that’s still correct. So answer is it’s really up to you and if you’re in school your professor as to what is preferred.
56:46 naively my thought would be that since you're only creating 1 subproblem of size n/4 each time, the cost of the operation is dominated by the cost of the root of the tree, which is in turn dominated by the cost of the operation in line 10. Therefore I'd say it's O((m+n) lg (m+n)) where m is equal to k + sum(k/4^i) with i ranging from 0 to log4(n) and k being the original length of results I'm assuming that's not the answer as it doesn't look as complicated as the triple-loop one
I think this is correct. Only thing that I would add that m as you defined it is a constant multiple of n (since it's a convergent geometric series). So it simplifies to n*log(n).
Now it makes a lot more of sense, thank you! The only thing I've noticed in example 9: why process = keys1 + keys2 is O(n + m)? we already counted keys1 and keys2, and as I see it, it shoul be O(1). Where am I wrong?
can you show how to create "surprise me" bouton on webpage for exemple you see article on devellopement and you click surprise me and open 3 article webpage on developpeement but not the one you watch before
Just a suggestion, in a video with this sort of content that not every viewer will be familiar with, it would be more rewarding to have the 'What is Big O notation?' section kick in at 00:00 instead of 1:12.
That appears at 1:22 which is reasonable and in scope. I have found some video's from other instructors where instruction does not begin until after 4 minutes in lol
Hi guys, I have a quick question, and hope there's someone who knows the answer. Should I learn Python or Java if I want to do backend dev in North America in the future? Tim said that he is doing backend, and we know he uses Python. But there are also people who say since lots of big companies are using java, java is better for landing a job. Big thanks!
I'm somewhat confused on the simplification of ex8. n(k+klog2(k)) => n(klog2(k)) I don't see how that becomes simplified, could you go into a bit more detail please?
Never understood big o notation until I found this video. Thank you so much!!
Genuinely informative, I really appreciate the breadth of your knowledge and how you use to to explain things in a concise way from multiple perspectives. Your content really helps me understand concepts I would've never thought I could grasp an understanding of and feel less intimidated about the learning process in general. Thanks!
Thanks . I am a java developer . This is useful for interview . Not many videos are there in youtube. and udemy on this topic
this what I wished for
someone to make a good tutorial on big O notation
Thank you so much Tim!
Fantastic video as usual Tim! Finishing up my first view of it. Thorough explanation. Would like to see 2-4 examples per any given inefficient algorithm and show how to make each more efficient in terms of Big O notation. Thank you for an incredible video.
Amazing tutorial!
Everything clearly explained and presented. This is a must watch video for everyone who is trying to start in the software engineering field as well as computer science!
Actually helped me a ton! I was so lost when my professor was explaining it, but watching this gave me some clarity on the topic!
Would like to see more on the other time complexities and also more on all algorithms from easy to advanced and showing examples of when each can be used in real world situations
taking data structures & algorithms in java this video is a blessing 🙏🏻thank you kind sir
Thank you so much! I've watched so many of your tutorials and they've helped me so much to where it's definitely worth subscribing to your ProgrammingExpert course!
I just started learning Big O notation in class and this was so helpful!!
This video is not good Tim...... It's GREAAAAT!!!!!!!!! The maths explanations were kinda funny at times but you nailed it. Big O was hard for me to understand to do it quick enough but you made it easy. Kudooos
Man I was thinking to learn this topic yesterday and today you posted a video about big o notation WOW!
I learned a lot from this video than 2 weeks of school.. great content 👍🏻 !!
Thanks for the thorough explanation and examples.
The explaination you give is impeccable
This is super helpful, Tim! I'm new to the field and have yet to have this concept explained in such a digestible manner. Working through ProgrammingExpert as well which it has been invaluable.
Hey Tim,I am always edified anytime I watch your video,I really wish you can make a video about cloud computing,I really need to know what path to follow to become a cloud engineer,I would be glad if you could kindly help me with that man.
Let’s goooo big Tim! Thanks for the video yet again.
love your content Tim! And this was indredibly enlightning. When I studied elementary number theory we talked about the big O notation but I always felt like I did not understand the point of having such a notation. Now, with these programming examples it feels much more intuitive and I can much clearly see the relevance of this notation.
Hey Tim Great Content as Always.✨
Thanks for Sharing it!🙏🏻
You Have Been an Inspiration for My Own 📺UA-cam Channel!!!
Amazing video!
Looking forward to watching more videos related to other data structure concept!!
Good video Tim , watched like 4 or 5 video about Big O notation could't still perfectly get it until you did a video about it hope you do for other Notation
For logarithmic time complexity (43:33), say that n is being divided by 2 over and over again until it reaches 1 and we want to calculate how many times these divisions happen. You can think of it like this :
n / 2 / 2 / 2 ... / 2 = 1
let's say that the division happened k times, that makes the equation like this:
n / 2^k = 1
2^k = n
k = log2(n)
So the number of divisions is around log2(n).
Nice explanation. Thank you
Thanks :) you're welcome
Loving this tutorial, really appreciate it :D
I'm on question 7 right now, if we assume that starting input n > 0 then the function never ends as it gets down to n=1 which halves to 0.5 and rounds back to 1.
I know this wasn't the point of the question, just something I noticed :')
Really excited to learn more
Thank you Tim. Pretty important topic.
Thanks tim, I have been wating for these kind of videos (from you) for a while. Thank you
I JUST CAN'T FIND THE WORDS TO EXPRESS MY GRATITUDE.
Incredibly helpful video Tim! Thank you for all the practice questions and patiently explaining it to us! =)
I'm watching your tutorials, and I'm thinking about what you said about the importance of developing good communication skills. I've watched plenty of coding tutorials that, yeah, all the information is there, but I fall asleep halfway through and barely learn anything. Your tutorials are different. You're so good at articulating what is going on, even if it's hard to explain. Do you have any resources you could recommend for improving communication skills? Even as a 28 year old, I feel like I'm very socially awkward, and struggle to clearly communicate what I am thinking.
Amazingly explained
Great video! I find it funny that the last example is O(n!) because it literally implements a factorial by repeatedly adding 1 😂. A normal implementation would be linear.
Super explanation
Thank you! I needed this badly!
👏 THANK 👏 YOU 👏 TIM 👏
Amazing tutorial fr, thanks Tim :)
Thank you!!
Appreciate it, dope video, really helped
What kind of psychopath writes their 1's from the bottom up?
Love your videos, thanks for everything you've taught me!
I needed this!
33:25 Actully since nums2 (m) is always less than nums1 (n) or it will raise an error, we can replace m with n as it will always be less and thus we have a time complexity of O(n)
Would like to see more videos on algorithms like Depth-First Search or concepts like recursion…
Great video, Tim! One thing that I was curious about was whether it matters what the base of the logarithm actually is. Since constant coefficients don't matter for Big O notation, and change-of-base rule can be used to turn any logarithm into a different base using a constant factor (i.e. log2(x) = logb(x)/logb(2)), does the distinction of saying log2 even matter for Big O? Perhaps I'm missing something here or it's just a convention to use log2?
Great question! Usually u can get away with just using log, however if you want to be most accurate then you use the actual base. Like u said u can write it as a constant and remove the base by writing in the format u suggested and that’s still correct. So answer is it’s really up to you and if you’re in school your professor as to what is preferred.
That was really helpful ♥️
36:00 tim bro I'm following
for the example9, I think, this will be the time complexity: TC: O(nlogn+mlogm+((n+m)×((n+m)+k)))
gonna watch this
Please make series on DSA
Coool video Tim!
Great video! Can you make more videos about data engineer?
Hi tim, for example #4, can we write n^2 instead of hw?
Thank yoou Tim!
56:46 naively my thought would be that since you're only creating 1 subproblem of size n/4 each time, the cost of the operation is dominated by the cost of the root of the tree, which is in turn dominated by the cost of the operation in line 10. Therefore I'd say it's O((m+n) lg (m+n)) where m is equal to k + sum(k/4^i) with i ranging from 0 to log4(n) and k being the original length of results
I'm assuming that's not the answer as it doesn't look as complicated as the triple-loop one
I think this is correct. Only thing that I would add that m as you defined it is a constant multiple of n (since it's a convergent geometric series). So it simplifies to n*log(n).
Amazing video! ❤❤❤
What does example 5 do? I am not able to understand what it does. Or is it just for representing time complexities?
Now it makes a lot more of sense, thank you! The only thing I've noticed in example 9: why process = keys1 + keys2 is O(n + m)? we already counted keys1 and keys2, and as I see it, it shoul be O(1). Where am I wrong?
Tim can you make Django projects, AI playing games, tutorial
45:05 won’t the function just never terminate since round(1/2) = 1 and we’re calling the same function
Rounding 0.5 actually gives 0 instead of 1, as 0 is not odd
can you show how to create "surprise me" bouton on webpage
for exemple you see article on devellopement and you click surprise me and open 3 article webpage on developpeement but not the one you watch before
amazing
I'm confused at 19:35 . Why didn't you set f(n)
Great 👍
Looks like there's an error with example 7, did you mean to write "if n == 1: return"?
Plz make DSA series.... Plz....
Just a suggestion, in a video with this sort of content that not every viewer will be familiar with, it would be more rewarding to have the 'What is Big O notation?' section kick in at 00:00 instead of 1:12.
That appears at 1:22 which is reasonable and in scope. I have found some video's from other instructors where instruction does not begin until after 4 minutes in lol
Hi guys, I have a quick question, and hope there's someone who knows the answer. Should I learn Python or Java if I want to do backend dev in North America in the future? Tim said that he is doing backend, and we know he uses Python. But there are also people who say since lots of big companies are using java, java is better for landing a job. Big thanks!
constant, linear, exponential
Yo man pls make a vid on burnout
Please start DSA playlist in python
please provide the codes you are using in the video
33:59
I'm somewhat confused on the simplification of ex8.
n(k+klog2(k))
=> n(klog2(k))
I don't see how that becomes simplified, could you go into a bit more detail please?
O(k+k lg k) = O(max(k, k lg k)) = O(k lg k)
I am going to make my own time complexity expect it is going to be called time simplicity.
OH. Wrong big O. Good video.
the day before my exam 🤧
People are commenting on an hour-long video posted a few minutes ago as if they have already watched it...
AAOA-DJRs alorithims N Log N , O(2^N)-O(9^N) utilising AAOA-DJRs.
I got the first two, completely failed the rest, then took one look at the final algorithm and said n!.
W?????
Math was never my thing and i'm losing it at 18:53 already. Being a brainlet is hard.
Dude your voice matches with Andrew Garfield's voice
Thank u so much ... may Allah guide u to accept Islam
Can you please program a bot that plays the pong game @Tech With Tim
51:24