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.
*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.
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
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.
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 .
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!
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
As much as i've read so far, a BST cannot contain duplicate values. But at 11:25, you said that the left child can contain a value 'less than or equal to' the value of the parent node. Can someone please clear this confusion. Thanks!
Just wanted to clarify, the tree presented at 17:28 is not meant to be a binary search tree, correct? If so, shouldn't 17 appear as the right child of 15?
+raj nandwani Not a binary search tree if unfixed. Binary search tree is only that if the left is smaller than the root and the right is greater than the root.
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 : )
Hi I would like to clarify regarding binary search insert. At 7:25, you mentioned that a binary search is required to find the first integer greater than 5. My question is how do we know which item specifically to look for, and in the event where we found an integer (let's say 9), how do we know if we should stop or continue searching for another integer (that is smaller than 9 but still bigger than 5). I'm just a bit confused here because from my understanding binary search looks specifically for an integer, so I'm not sure how we can search for the next bigger integer after 5. Thanks
at 15:30, talking about unbalanced tree, should it be the depth and not the height. "A tree is balanced when, for all nodes the difference between heights of left and right subtree is not greater than 1"?? should it be depth instead of heights?
There appears to be a mistake @ 17:30 , that is not a binary search tree at all, the 17 is in the left child of 15, it should be in the right child I believe.
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.
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."
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.
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
At 2:17 - How does array insertion have worst case complexity of O(1)? You showed an example of insertion at the end. What if element is to be inserted in between the array or at the start? then all the other elements need to be shifted to right. This should make the worst case complexity as O(n)
I know this is probably something simple, but it shows you how beautiful Programming can be :) Do watch it.It might inspire you to come up with something cool of your own : Java : Binary Tree Animation Just thought ill post it here since it is sort of related.
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
*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
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.
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
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
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.
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.🙁
Very crisp and clear, it was 16 years since i graduated and never brushed up on this topic. Excellent !
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.
One of the best videos I've seen regarding data structures. Thanks for sharing the knowledge.
You are a great teacher and confident teacher with profound knowledge
One of the best explanations I've seen on any subject, I understand this perfectly now. Thank you!
You give an excellent lecture. Please don't change a thing.
I literally loved the way you turn things and make it go concrete in our head..! You are surely a life saviour 🙏
Excellent explanation. I wish my university classes were this concise and well-explained.
I left my college lectures to study this video, wonderful and easy explain!
You all lectures are very simple and understandable...thanks a lot..keep working like that..
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 .
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.
simply the best. I'd say your method of explanation is great.
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. ☹
Great lecture sir, these 20 mins are worthy. Thank you sir.
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!
It's very helpful, Thank you for your explanation
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
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.
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.
Best explanation I have ever seen for a data structures' concept!
Well,, been taught this in an online class and grasped nothing but here, still online am getting it all🤗🤗Thankyou
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
Simple and clear, helps a lot, thank you very much.
Hey man it's been 5 years. How far have you come?
Better explanation than my university lecturer. Thank you!
As much as i've read so far, a BST cannot contain duplicate values. But at 11:25, you said that the left child can contain a value 'less than or equal to' the value of the parent node. Can someone please clear this confusion. Thanks!
Very good, thank you! For showing the necessity of learning this first.
Just wanted to clarify, the tree presented at 17:28 is not meant to be a binary search tree, correct? If so, shouldn't 17 appear as the right child of 15?
capolo2 That's an error :( .. Thanks for noticing. I am putting an annotation marking it.
I think its still a binary search tree but not balanced. Correct me if i m wrong.
+raj nandwani Not a binary search tree if unfixed. Binary search tree is only that if the left is smaller than the root and the right is greater than the root.
raj nandwani
Hi
Mam
I PAUSED THE VEDIO TO GIVE A LIKE AND SUB , NICE EXPLANATION ! KEEP IT UP
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 : )
Hi I would like to clarify regarding binary search insert.
At 7:25, you mentioned that a binary search is required to find the first integer greater than 5. My question is how do we know which item specifically to look for, and in the event where we found an integer (let's say 9), how do we know if we should stop or continue searching for another integer (that is smaller than 9 but still bigger than 5).
I'm just a bit confused here because from my understanding binary search looks specifically for an integer, so I'm not sure how we can search for the next bigger integer after 5.
Thanks
Thank you, I just need popcorn to watch the rest of your videos!
thank you so much! I appreciate you starting with the problem, made the rest of the video easier to understand :)
Best tutorial for data structures ever had Subscribed:)
Excellent explanation and its really good videos
You're an amazing teacher, thank you
I like your way of teaching....My teachers also study your lectures before coming to class :D
please upload more data structures videos ! its really helpful !
There need to be a compiled list of RUclips courses. best ones like this make the list. THERE are too many.
Thank you so much, this is so incredibly helpful! I really appreciate it!!
@mycodeschool really good lec. Were really helpful for viva. Kudos to you!!!
at 15:30, talking about unbalanced tree, should it be the depth and not the height. "A tree is balanced when, for all nodes the difference between heights of left and right subtree is not greater than 1"?? should it be depth instead of heights?
Great !! very easy to follow and understand. Thank you very much !
Thanks for making this.. cleared some concepts :)
There appears to be a mistake @ 17:30 , that is not a binary search tree at all, the 17 is in the left child of 15, it should be in the right child I believe.
Just so others know it looks like he fixed the video accordingly. Nice catch Kevin.
@@brooklyna007 nope it's incorrect
I think no, if you closely take a look 17 is in the right child of 15 and left child of 20. I think so.
There's so much of clarity....you really eel so enlightened :)
Best explanations of data structure. Loved it!!
@18:33 wouldn't it worth to swap number 17 and number 19 (and after the swap, put 17 on the left, of course) after we found where to insert it?
you explain it wonderfully.. subscribed ;)
why dont u go to ur country and study
what a reply man
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.
Nicely Explained in a very excellent way...Thanks Sir
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)?
BEST EXPLANATION EVER!
Thank u for explain that concept sir.
Hey man I know you'll never see this but I appreciate you
U r awesome....I don't know how to thank to you...but literally ur explanation is too good
Thanks...You really are a great Teacher
Your English is very good.grate job.
Thank you, you have great teaching skills
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.
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."
You are an amazing teacher thank you
Great bro Helped a lot for my exams
Excellent lecture, thanks for posting!
excellent explanation and example, will follow for more!
Thats an amazing lecture, thank you for the content.
You just explained in 19min what my professor took 3 hours and 45 slides to do.
Osm .. Just one problems sometimes ur subtitle cover the white board 13:49
At 12:00, isn't it a binary search tree? Because value in leaf node 16 is greater than 8
just loved it , very nice video.
i hope the implementation part comes soon .
Very helpful...thanku so much sir...great explanation😘
Very good video, very calming voice gj buddy
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 .
AMAZING explanation. Thanks
Thank you very much for this. This is excellent!
Grate communication skill .all videos explain clearly thank you!!!!!!
Better explanation than my university lecturer could manage.
Brother kaafi badiya sanjaya hai aapne
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
please provide the video for learning hashtables, maps, heaps plzzzz......you are the best!!!
Your videos are great, thank you so much
At 2:17 - How does array insertion have worst case complexity of O(1)? You showed an example of insertion at the end. What if element is to be inserted in between the array or at the start? then all the other elements need to be shifted to right. This should make the worst case complexity as O(n)
Great explanation! Thank you!
way to speaking is superb dude...
Amazingly clear, thanks.
excellent explanation it's awesome...
I know this is probably something simple, but it shows you how beautiful Programming can be :)
Do watch it.It might inspire you to come up with something cool of your own : Java : Binary Tree Animation
Just thought ill post it here since it is sort of related.
Nice explanation. .👍👍
RIP the best DSA teacher internet had ever seen.
Petition to restart @mycodeschool !!!
Why is the linked list connected to ground (3:56)? Is that deliberate?
It's optional to connect it to the ground....just for understanding....it is as good as NULL...