I absolutely LOVE how you started off by showing the common operations and their time analysis for Arrays and Linked lists before introducing BST. Sometimes you just know these things but not exactly WHY the need for them in the first place. Thanks.
After looking at many videos online of many different youtubers. This is the best one. The way he introduced arrays and linked list first and the issues with them and how can we fix your issues is exactly what everyone needs to know
*My takeaways:* 1. Computation complexity comparison of searching/inserting/removing elements in Array (sorted, unsorted), linked list and binary search tree (balanced) 0:00 - 9:28 2. What is balanced binary search tree and why it is efficient for searching 9:30 3. Unbalanced binary search tree 16:22 3. Insert and remove elements in balanced binary search tree is also efficient 17:44
Ahmed Hadi unfortunately I am. Sometime in 2014 already. There is a Quora answer about this written by the cofounder of this channel. Google humblefool.
Dear brother, your lectures have indeed helped me a lot for my university studies. Thank you so much for putting up this selfless effort. May God reward you with goodness.
I am emotional after hearing about this guy's story he is Harsha Suryanarayanan from IIIT-A, he was the highest rated geek in Topcoder in India he mentored his juniors but unfortunately he died while crossing a road, I am happy that he is still mentoring lot of us. #TributeToHarsha
@@r.m.harish5529 why do I want to spread false information, am I getting any awards for it, before arguing check news yourstory.com/2014/06/techie-tuesdays-humblefool?
@@aaradhanah5059 bro the person who actively controlled this channel was the co founder animesh. He is alive and well. Harsha does not make the videos, animesh does.
@@r.m.harish5529 This channel is not active, it is a teamwork between harsha and animesh, If he is alive this channel might me active, also I wish animesh to teach us, I just made a comment to appreciate harsha's dedication reply before researching about it
@@aaradhanah5059 atleast now you accept that it's a teamwork. I only corrected you earlier because you made it seem like it was an effort only by Harsha. Other people may not know about animesh, who made these videos. I hope you understand and take it in the right sense sorry if I hurt you by saying u spread false info
your videos are really helpful , moreover they convey all the info with so much of ease of understanding , and so efficiently , love your work , its great .and thanks from my side and as well as from the whole freshers in my college cause about more than 90% watch these for sure .
when you talk about time complexity ,why to use trees i stooped the video and liked it and do this comment for thanking you for this level of explanation
Its a basic thing you have to know if youre studying for an algorithms/data-structures exam, so its not really surprising he covered it. Like almost any operation you learn in CS, one of the first questions are always "What is the avg. time complexity ? what is the optimistic/pessimistic time complexity ? What is the space complexity ?" And those are really important questions, its awesome you recognised the significance of that, means you have proper intuition : )
This is super great. Your explanations are concise and understandable and the graphics really help. Thanks for making these :) I will definitely be watching more of these data structure lessons!
At 7.22 min u mentioned about inserting element into sorted array by performing 2 steps: 1)- find the position in array (use Binary Search -O(logn)) and 2)- shift all records (O(n)). How overall complexity time is O(n), since we have the sum of O(n)+O(logn)?
We can make a tail pointer which points to the end node of the linked list and add the newly created node to the end of the list with traversing from the head or the beginning and it will cost O(1).
+Ahmed Kh'aled You need to traverse as you need to know where to insert the element For eg., if LL: 1;2;5;7;8;9 and you want to insert 6, we cannot just make a pointer and insert at the rear end. We have to traverse from left to right LL: 6;1;2;5;7;8;9 [wrong] LL: 1;6;2;5;7;8;9 [wrong] LL: 1;2;6;5;7;8;9 [wrong] LL: 1;2;5;6;7;8;9 [correct]
I must had said without back then. When I create a new node it updates a pointer called "tail" for instance. So whenever I want to add a node to the end of list I just get the address from "tail" and point it the one I want to create and which will be the new "tail", got it?
I'm a bit late to the argument, but I agree with you. If you know the iterator already, then it is O(1). Else, you will have to find the iterator in which case it would be O(n).
This is also adding on to the argument. It is from cplusplus.com "Unlike other standard sequence containers, list and forward_list objects are specifically designed to be efficient inserting and removing elements in any position, even in the middle of the sequence."
Great explanation. Could you please enable the fan funding option so we can donate to this channel. We need more content like this. We know humblefool, not with us. We need more from this channel.
Thank you for the incredibly useful videos. Currently I also intend to share their knowledge, I'm disturbed that you did not know the building of images in a video using algorithms tool ?. Looking forward to hearing from you guys soon, thanks
Hi. I am one of your subscriber, been following you for a couple of months. Can i possibly use this as a reference in our class, seems like you do have a very clear way of explaining. Thankyouuu.
Great video! But I think there is a inconsistency. Insertion in an array have complexity of worst case O(n) while in linked list it is improved to O(1). Consider inserting an element at the start of array, then you have to shift almost all the array by one element, while in linked list you only modify the links of two elements.
In the unsorted case, insertion into an array just tacks the new item onto the end of the array, so (assuming the allocated space is larger than the number of defined array elements), this is of order O(1). For a one-directional unsorted linked list insertion at the head of the list is also O(1).
I absolutely LOVE how you started off by showing the common operations and their time analysis for Arrays and Linked lists before introducing BST. Sometimes you just know these things but not exactly WHY the need for them in the first place. Thanks.
totally agree with you
yours is perhaps the only lectures series that doesn't confuse students with unnecessary things,it is really great,thank you very much
Honestly this was one of the best, if not *the* best algorithm exploration I've ever seen. Congratulations to the author(s)!
One of the authors died in a hit and run case, back in 2014. It’s really a great loss. The other one is working for google in Silicon Valley.
After looking at many videos online of many different youtubers. This is the best one. The way he introduced arrays and linked list first and the issues with them and how can we fix your issues is exactly what everyone needs to know
Hands down the best and most clear cut example on binary search tree so far. Thank you.
*My takeaways:*
1. Computation complexity comparison of searching/inserting/removing elements in Array (sorted, unsorted), linked list and binary search tree (balanced) 0:00 - 9:28
2. What is balanced binary search tree and why it is efficient for searching 9:30
3. Unbalanced binary search tree 16:22
3. Insert and remove elements in balanced binary search tree is also efficient 17:44
if you have exam this morning skip and start at 9:53
And play the video in 2x
@@saitaruns 🌝😅
@Ammie Zolman wow! a shady comment posted minutes after, i’m gonna believe this :D
@@tasty0rang3 lol
thanks dude
Very crisp and clear, it was 16 years since i graduated and never brushed up on this topic. Excellent !
You are the best teacher in this planet .....
He was. R.I.P.
Hes dead? Didnt he upload a video 5 months ago?
are you serious ?
Ahmed Hadi unfortunately I am. Sometime in 2014 already. There is a Quora answer about this written by the cofounder of this channel. Google humblefool.
@@zahirjacobs716 nop brother he is alive
Dear brother, your lectures have indeed helped me a lot for my university studies.
Thank you so much for putting up this selfless effort.
May God reward you with goodness.
You sir are an incredible teacher. Your delivery and pace is so easy to understand. Thank you for the great content.
He won't hear you. He passed away in an accident, a year after these lessons came out.🙁
You are a great teacher and confident teacher with profound knowledge
I left my college lectures to study this video, wonderful and easy explain!
Excellent explanation. I wish my university classes were this concise and well-explained.
One of the best explanations I've seen on any subject, I understand this perfectly now. Thank you!
One of the best videos I've seen regarding data structures. Thanks for sharing the knowledge.
I literally loved the way you turn things and make it go concrete in our head..! You are surely a life saviour 🙏
You give an excellent lecture. Please don't change a thing.
You all lectures are very simple and understandable...thanks a lot..keep working like that..
This is a really concise and clear explanation of a BST. Thank you!
You have done something very good.
We are getting good knowledge because of you.
Thank you.
I am emotional after hearing about this guy's story he is Harsha Suryanarayanan from IIIT-A, he was the highest rated geek in Topcoder in India he mentored his juniors but unfortunately he died while crossing a road, I am happy that he is still mentoring lot of us. #TributeToHarsha
Don't spread false information that was his friend. He is still alive.
@@r.m.harish5529 why do I want to spread false information, am I getting any awards for it, before arguing check news yourstory.com/2014/06/techie-tuesdays-humblefool?
@@aaradhanah5059 bro the person who actively controlled this channel was the co founder animesh. He is alive and well. Harsha does not make the videos, animesh does.
@@r.m.harish5529 This channel is not active, it is a teamwork between harsha and animesh, If he is alive this channel might me active, also I wish animesh to teach us, I just made a comment to appreciate harsha's dedication reply before researching about it
@@aaradhanah5059 atleast now you accept that it's a teamwork. I only corrected you earlier because you made it seem like it was an effort only by Harsha. Other people may not know about animesh, who made these videos. I hope you understand and take it in the right sense sorry if I hurt you by saying u spread false info
Well,, been taught this in an online class and grasped nothing but here, still online am getting it all🤗🤗Thankyou
Man! the teaching level is just amazing. Respect for the knowledge and research behind this level of content-creation. Thanks with all my heart ❤️.
He was a pioneer of DS teaching in India but passed away at age 30. ☹
I just checked out your videos on BST and I must say, Thank you very much.
That was amazing....I mean now I know the basic functionality of BST.
simply the best. I'd say your method of explanation is great.
Do some more computer science stuff. You are articulate and easy to understand. I like it when you repeat to re-enforce the concepts. Well done.
your videos are really helpful , moreover they convey all the info with so much of ease of understanding , and so efficiently , love your work , its great .and thanks from my side and as well as from the whole freshers in my college cause about more than 90% watch these for sure .
Better explanation than my university lecturer. Thank you!
Great lecture sir, these 20 mins are worthy. Thank you sir.
Best explanation I have ever seen for a data structures' concept!
There need to be a compiled list of TH-cam courses. best ones like this make the list. THERE are too many.
when you talk about time complexity ,why to use trees i stooped the video and liked it and do this comment for thanking you for this level of explanation
Its a basic thing you have to know if youre studying for an algorithms/data-structures exam, so its not really surprising he covered it.
Like almost any operation you learn in CS, one of the first questions are always "What is the avg. time complexity ? what is the optimistic/pessimistic time complexity ? What is the space complexity ?"
And those are really important questions, its awesome you recognised the significance of that, means you have proper intuition : )
It's very helpful, Thank you for your explanation
This is super great. Your explanations are concise and understandable and the graphics really help. Thanks for making these :) I will definitely be watching more of these data structure lessons!
please upload more data structures videos ! its really helpful !
Video starts at 9:38. You're welcome
Makaveli
You r a hero
Hahahahhahaha
I learned a lot about arrays lol
Tq
I was going to leave the video hahaha thx
rest in peace. and thank you very very much
Rest in peace????
What??
@@AbinayaThiyagarajan777 Yes bro @humblefool is no more, but he will always be remembered.
@@gauravnegi7871 Oh Gosh!!!! 😱 Thats Shocking. Rip
This is not that guy, this is his partner.
You're an amazing teacher, thank you
Simple and clear, helps a lot, thank you very much.
Hey man it's been 5 years. How far have you come?
Thank you, I just need popcorn to watch the rest of your videos!
At 7.22 min u mentioned about inserting element into sorted array by performing 2 steps: 1)- find the position in array (use Binary Search -O(logn)) and 2)- shift all records (O(n)). How overall complexity time is O(n), since we have the sum of O(n)+O(logn)?
I like your way of teaching....My teachers also study your lectures before coming to class :D
I PAUSED THE VEDIO TO GIVE A LIKE AND SUB , NICE EXPLANATION ! KEEP IT UP
Great bro Helped a lot for my exams
Best tutorial for data structures ever had Subscribed:)
Hey man I know you'll never see this but I appreciate you
You just explained in 19min what my professor took 3 hours and 45 slides to do.
Nicely Explained in a very excellent way...Thanks Sir
Best explanations of data structure. Loved it!!
Very good, thank you! For showing the necessity of learning this first.
Brother kaafi badiya sanjaya hai aapne
Thanks...You really are a great Teacher
please provide the video for learning hashtables, maps, heaps plzzzz......you are the best!!!
We can make a tail pointer which points to the end node of the linked list and add the newly created node to the end of the list with traversing from the head or the beginning and it will cost O(1).
+Ahmed Kh'aled
You need to traverse as you need to know where to insert the element
For eg., if LL: 1;2;5;7;8;9
and you want to insert 6, we cannot just make a pointer and insert at the rear end. We have to traverse from left to right
LL: 6;1;2;5;7;8;9 [wrong]
LL: 1;6;2;5;7;8;9 [wrong]
LL: 1;2;6;5;7;8;9 [wrong]
LL: 1;2;5;6;7;8;9 [correct]
I must had said without back then.
When I create a new node it updates a pointer called "tail" for instance.
So whenever I want to add a node to the end of list I just get the address from "tail" and point it the one I want to create and which will be the new "tail", got it?
و انا هيك بعمل .. اسهل و اسرع 👍
I'm a bit late to the argument, but I agree with you. If you know the iterator already, then it is O(1). Else, you will have to find the iterator in which case it would be O(n).
This is also adding on to the argument. It is from cplusplus.com "Unlike other standard sequence containers, list and forward_list objects are specifically designed to be efficient inserting and removing elements in any position, even in the middle of the sequence."
Thanks for having a better English than others
U r awesome....I don't know how to thank to you...but literally ur explanation is too good
Excellent explanation and its really good videos
Thank you, you have great teaching skills
Your English is very good.grate job.
Great explanation. Could you please enable the fan funding option so we can donate to this channel. We need more content like this. We know humblefool, not with us. We need more from this channel.
There's so much of clarity....you really eel so enlightened :)
Petition to restart @mycodeschool !!!
Great !! very easy to follow and understand. Thank you very much !
BEST EXPLANATION EVER!
Thank u for explain that concept sir.
AMAZING explanation. Thanks
You are an amazing teacher thank you
@mycodeschool really good lec. Were really helpful for viva. Kudos to you!!!
Better explanation than my university lecturer could manage.
thank you so much! I appreciate you starting with the problem, made the rest of the video easier to understand :)
Thank you for the incredibly useful videos. Currently I also intend to share their knowledge, I'm disturbed that you did not know the building of images in a video using algorithms tool ?. Looking forward to hearing from you guys soon, thanks
sorry, they don't do videos anymore
way to speaking is superb dude...
excellent explanation
next level teaching
Came for the Tutorial.. stayed for the Tutor 🤍👍🏻
Godfather of DSA 🔥
simple,to the point ,very good detailed explanation
RIP the best DSA teacher internet had ever seen.
Great explanation sir
Very good explanation.
Thank you so much, this is so incredibly helpful! I really appreciate it!!
Hi. I am one of your subscriber, been following you for a couple of months. Can i possibly use this as a reference in our class, seems like you do have a very clear way of explaining. Thankyouuu.
yea you could keep his legacy alive .
Thats an amazing lecture, thank you for the content.
you explain it wonderfully.. subscribed ;)
why dont u go to ur country and study
what a reply man
excellent explanation it's awesome...
Thanks for making this.. cleared some concepts :)
Thank you so much for these videos.
excellent explanation and example, will follow for more!
Nice explained
Great video! But I think there is a inconsistency. Insertion in an array have complexity of worst case O(n) while in linked list it is improved to O(1). Consider inserting an element at the start of array, then you have to shift almost all the array by one element, while in linked list you only modify the links of two elements.
In the unsorted case, insertion into an array just tacks the new item onto the end of the array, so (assuming the allocated space is larger than the number of defined array elements), this is of order O(1). For a one-directional unsorted linked list insertion at the head of the list is also O(1).
Insertion and deletion are both O(1). Even if Deletion would be O(n), insertion must be O(n) too.
Very helpful...thanku so much sir...great explanation😘
Very good video, very calming voice gj buddy
Arey I finally realised that you were trying to say ARRAY instead of arey lol. But really clear explanation. Thanks!
Excellent lecture, thanks for posting!
somebody give this guy a Nobel
superb explaination.....
Nice explanation. .👍👍
Great explanation! Thank you!
I am assuming that log() is base 2.
Cannot reiterate how much I appreciate your video.
s
That wasn't a very useful comment, was it, Ravi?
nostalgiaplatz dude ..haha ..sorry .. but yes Nguai al it is log base 2