Data Structures and Algorithms for Beginners
Data Structures and algorithms for beginners. Ace your coding interview. Watch this tutorial to learn all about Big O, arrays and linked lists!
🚀 Get interview-ready with my full course: bit.ly/2OwNTxx
👍 Subscribe for more awesome content: goo.gl/6PYaGF
Need Java foundations first? Check out my tutorial: • Java Tutorial for Begi...
✋ Stay connected:
- Twitter: / moshhamedani
- Facebook: / programmingwithmosh
- Instagram: / codewithmosh.official
- LinkedIn: / codewithmosh
💡 What you'll learn:
- Big O notation for analyzing code efficiency.
- How to implement and use arrays.
- The basics of linked lists.
👉 This tutorial is perfect for you if:
- You're preparing for technical job interviews.
- You want to improve your coding fundamentals.
- You're a CS student learning these concepts.
Let's get started!
📖 TABLE OF CONTENT
0:00:00 Intro
0:01:04 What is Big O?
0:03:03 O(1)
0:04:32 O(n)
0:08:17 O(n^2)
0:10:41 O(log n)
0:13:20 O(2^n)
0:14:10 Space Complexity
0:17:53 Understanding Arrays
0:21:03 Working with Arrays
0:24:32 Exercise: Building an Array
0:27:24 Solution: Creating the Array Class
0:30:43 Solution: insert()
0:35:03 Solution: remove()
0:39:54 Solution: indexOf()
0:42:23 Dynamic Arrays
0:46:11 Linked Lists Introduction
0:46:41 What are Linked Lists?
0:51:16 Working with Linked Lists
0:54:40 Exercise: Building a Linked List
0:56:05 Solution: addLast()
1:02:15 Solution: addFirst()
1:04:28 Solution: indexOf()
1:06:23 Solution: contains()
1:07:28 Solution: removeFirst()
1:11:52 Solution: removeLast()
#ComputerScience #Coding #Programming
Пікірлер: 677
🚀 Get interview-ready with my full course: bit.ly/2OwNTxx 👍 Subscribe for more awesome content: goo.gl/6PYaGF
For Mobile Users 0:00:00 Intro 0:01:04 What is Big O? 0:03:03 O(1) 0:04:32 O(n) 0:08:17 O(n^2) 0:10:41 O(log n) 0:13:20 O(2^n) 0:14:10 Space Complexity 0:17:53 Understanding Arrays 0:21:03 Working with Arrays 0:24:32 Exercise: Building an Array 0:27:24 Solution: Creating the Array Class 0:30:43 Solution: insert() 0:35:03 Solution: remove() 0:39:54 Solution: indexOf() 0:42:23 Dynamic Arrays 0:46:11 Linked Lists Introduction 0:46:41 What are Linked Lists? 0:51:16 Working with Linked Lists 0:54:40 Exercise: Building a Linked List 0:56:05 Solution: addLast() 1:02:15 Solution: addFirst() 1:04:28 Solution: indexOf() 1:06:23 Solution: contains() 1:07:28 Solution: removeFirst() 1:11:52 Solution: removeLast()
@rohitdhas4438
3 жыл бұрын
Thanks
@Someone-nt8wz
2 жыл бұрын
Big help
@tibettenballs4962
2 жыл бұрын
you know mosh used to touch me, then force me to touch my sister back in syria?
@adamurray88
2 жыл бұрын
Un
@saravananrhagavan7349
2 жыл бұрын
Thank you
This is the most underrated course ever. Best resource to master data structure and algorithms...
@iamserda
3 жыл бұрын
'master, no' but certainly to get a basic understanding of big, ds and algo. you still get a thumbs up!
@renukaprincy1619
2 жыл бұрын
@@iamserda qqqqqqqqqqyhncf
@mozart0
2 жыл бұрын
@@renukaprincy1619 you OK?
I'm only about a half-hour into this lesson, and I can already tell that it will be very helpful. I was trying to follow along with an eight-hour video posted by a Google engineer and was really struggling. Your approach to teaching this concept is working much better for me. Thank you for posting this video!
Just wanted to say how much I appreciate you as a teacher Mosh -- you communicate things so well and make math and computer science genuinely fun to learn
A huge thank you Mosh! You don't know how much I love to watch your videos. It's a strange matter in me that I am never satisfied by just good explanation, I also need to have nice presentations too! Just like the one you are having. Your videos are the just perfect blueprint of the kind of educational videos I always wanted to watch...once again, thanks mosh. You really get my back everytime I need to have such nice explanations of any topic!!❤️
Huge thanks to you, I finally understand linked lists and how to work with them, before this I was struggling a lot with them. Now I understand them very well. You're amazing for giving us this for free.
Thanks Mosh this is just what I needed to level up as a developer right now
You aren't just an amazing man you are wonderful with the meaning of the word. A lot of thanks to you. Every single word is useful than you imagine
Im 5 yrs uinto professional programming, and what a shame, I had no clue about linked list. Thanks for this swift and useful tutorial.
Thank you Mosh ! Yo're so fluent in programming, very clear & easy to be understood, always positive and having fun while coding.
This tutorial from Mosh is really changed my mind to look towards Data Structures.A lot thanks and support to Mosh.Never find this kind of tutorial which is explained in more easy and detailed way. 🙌
Mosh, you're an amazing tutor! KZread suggested me your design patterns lesson and from that moment I can't stop watching your videos. I'm also going to buy the whole courses from your website. I would like to point out a correction (or rather an omission) on this video though. Although you correctly pointed out that the time complexity of removing the last item from a linked list is O(n), for the Java LinkedList is actually O(1) since it's implemented as a double linked-list. Again, thank you for your awesome work!
@rehanansari8154
3 жыл бұрын
ya you're right I was also thinking the same
@kanchanvyas5490
3 жыл бұрын
But he said we consider the worst case always.So O(n) should be correct
@alexandrosntousias1496
3 жыл бұрын
@@kanchanvyas5490 For Java's implementation of LinkedList, the worst case for removing the last item is also constant O(1). Basically, it maintains a pointer to the last item of the list, and given that the list is implemented as double linked list it can access the item before last and easily remove the last item.
Great video! For the removeAt() method for Array, I believe if you have an Array on length 1 and one element within it, passing 0 as the index will cause an array index out of bounds exception.
Best way to get it started! I just love your tutorials Mosh . Hope you never stop posting your tutorials.
I followed to here from the beginner’s course. The interactive part is the key. After doing the interactive exercises I was like aha I got it. Before that I read other’s code just fine, but cannot write one myself.
Mosh is the one best computer science teacher in the world, i love your all the courses thanks for your hard working.
Mosh, in my internship over a year ago, I studied your course on React, built an awesome application, and won a lot of praise from my co-workers. I just got laid off (by the same company) and back to the job hunt. I'll check out this course. I have a lot of faith in your content! Thanks for making these for us.
@elij8852
2 жыл бұрын
@shreyas k I'm now working in FAANG so it turned out well!
@akshaysharma145
2 жыл бұрын
@@elij8852 could you please share which courses did you take from mosh or any other source specially for react and ds and algo in java? for 2022
@elij8852
2 жыл бұрын
@@akshaysharma145 For sure. Since then I took his HTML/CSS, Git, and Redux courses
@akshaysharma145
2 жыл бұрын
@@elij8852 can you please share your honest review? Also if you have taken ds and algo one? Are all these courses up to date?
@elij8852
2 жыл бұрын
@@akshaysharma145 forgot about the DS and Algo one. I took that too. As far as I remember, they were all up to date when I took them, all within the last couple years. I thought they were all great, but looking back on the Redux course, I feel I could have just taken a look at the documentation to learn what I know
I LOVE YOU FOR EXPLAINING IT WITH ANIMATIONS AND MAKE IT LOOK SUPER EASY. GOD BLESS YOU.WITHOUT UNDERSTANDING THE BASICS IT IS HARD TO MASTER THE DS AND ALGOS.
Sir mosh, you're way of teaching is best, I love to be as a your student.
for sure i had never saw such a teacher like you in this world ....... you are beyond the time
Even though Java allows bracketless single statement for loops, it's good practice to use brackets anyway. It's especially helpful in Pull Request reviews and manual resolving of merge conflicts.
@goodmanwiseman303
2 жыл бұрын
I dont understand your last sentence at all, but I gave you a thumbs up anyway, because I find brackets really helpful.
@PaladinJenkis
2 жыл бұрын
Imagine you have a bracketless if statement somewhere in loop and you add another condition to that, be it by accident or through a merge conflict. what happens now is that instead of being executed only if the condition applies, it will be executed every time. This entire concept makes no sense, it makes the code incoherent and easy to break. I'd be extremely cautios to take advise from someone who has such a coding style, that's what I am trying to say.
@colbyboucher6391
2 жыл бұрын
@@goodmanwiseman303 They're talking about collaborating on projects with Git.
39:03 in the removeAt() method the for loop's condition should be i < count - 1, because inside it's block you access items[i + 1] which in case where count == items.length will throw an ArrayIndexOutOfBounds exception. I know that count can't be equal to the length of the array because you resize it when that happens, but It is still a small mistake since your method will be dependent of your insert method so I decided I should mention it. Overall the video is very well made and explains everything with simple examples.
Dear mosh, your courses are the best I’ve ever taken, I never thought that Data structures and algorithms would be this easy, all thanks to you Mosh!
@akshaysharma145
2 жыл бұрын
have you taken the paid ds and algo java course? is it worth buying to crack interviews?
@rosemwangi5635
Жыл бұрын
@@akshaysharma145 I’m here waiting to get this answer too
@julianbecerratellez6334
Жыл бұрын
@@akshaysharma145 is worth every penny.
@akshaysharma145
Жыл бұрын
@@julianbecerratellez6334 have you taken the course? Are all types of data structures along with important questions covered?
Even though i knew most of the concepts in this but learned some amazing things Thank you mosh
@sadiyanoorain9251
2 жыл бұрын
Before starting the course I wanted to know in which language is he teaching? Is it DSA in C++?
@deliveringIdeas
2 жыл бұрын
@@sadiyanoorain9251 Java. If you are fluent in c++ look at abdul bari's DSA
@sadiyanoorain9251
2 жыл бұрын
@@deliveringIdeas Oh okay Thanks 😃😃😃
Awesome video! Thank you so much for making these videos. I'm going to purchase the full course.
Finally. I was waiting so long for this. Thank you so much once again mosh 😀
Thanks a lot mosh❤you cant imagine how much you have made our learning easy and efficient💘
You have a great teaching style, Mosh! Now I have a clear concept of Big O notations.
Mosh, I have bought this course on your website and let me just say - the way you teach how to create our own methods to manipulate arrays is exactly how my d.s. & a. class in school should have taught us but didn't! We are essentially learning how the original Java classes were developed from scratch with your course! SO COOL
@marcspect
Жыл бұрын
BC
You are awesome Mosh! Great tutorial. Mosh, please make a course on "Design Patterns".
For the removeLast() method I suggest to use two pointers say current and next both initialized to first. And the while(next!=null) { current=next; next=next.next;} When the loop terminates the current points to the last node. This will no longer need the creation of the getPrevious() method.
This video really helped me understand the linked list very easily. Thanks Mosh.
Thanks sir We all r waiting for this from a long time
This was simple and easy to follow. Great tutorial! Thanks Mosh.
This is an amazing course! Although I had to tweak my code when watching the solutions, I was able to write a lot of the implementation myself based solely on the hints given and the theory behind the logic. I will most likely buy the course as I want to learn more about the other data structures. Thank you
Thank you for your videos. You explain everything so well and clear. I hope to watch all of them :)
Really good to see you..I was waiting for your new course.. This is amazing. I just what to ask one question will there be any course on "Data analysis with python" or "Data science with python" as these two fields are growing day by day ? Thanks in advance:)
There's no better feeling than when an intimidating concept clicks. Thanks Mosh!
I was very struggling with why the binary search has log(n) complexity until I learned that CS uses logarithm base 2, unlike in math with 10. It all made sense after realizing that.
@internetbscop5364
3 жыл бұрын
Not quite right, the base of the logarithm is defined by the nature of the algorithm. The logarithm can use different base depending upon the type of algorithm.
@AtulKumar23
2 жыл бұрын
@@internetbscop5364 00
this is a great tutorial! I absolutely loved it.
should make a series on more advanced data structures... like stacks, queues, generics, heaps, trees, graphs, etc.
@seanli6339
3 жыл бұрын
@@vasachisenjubean5944 where?
@lama-tp9lh
3 жыл бұрын
@@dlengelkes I checked it but it's not free help plz !!
@dlengelkes
3 жыл бұрын
@@lama-tp9lh here is another course on youtube. kzread.info/dash/bejne/g6GokrOwqqjTmJM.html
@lama-tp9lh
3 жыл бұрын
@@dlengelkes !! thanks for helping me
@lama-tp9lh
3 жыл бұрын
@@dlengelkes can u send me your e-mail
Thank you Mosh. As I'm preparing for Software Engineer position interview with FAANG company, this is too essential to refresh my knowledge.
Thank you so much. This helped me so much. I am going to purchase the full course. I also want to enroll several other courses of yours as well. I just want to know if I could download the course with monthly access membership so I can study the course offline...
This is so useful specially now that we students need to study and understand programming alone because of this pandemic. Thank you Mr. Mosh that u exist! You discuss data structure and algorithms better than my instructor. 😅 To more videos to watch! 😊
Simply magnificent! Excellent explanation! Thank you Mosh!
Hi Mosh! Your videos are just awesome. I have my data structure exam after a month. So it is my humble request to pls upload video of trees,hash tables and AVL trees etc quickly so that I can prepare myself for the exam. The problem is that I cannot buy the course so pls help me in this regard. Thanks!
I just got done asking my CS teacher does he have any sources for learning data structures he said to use the book, and then I get home to see this in my recommendations. Some thing aint adding up
@AnimatedStoriesWorldwide
4 жыл бұрын
i just woke up after dreaming of my school time and trying to understand why they taught us arrays before array list and then this is on my subscription list...
@rudranarayandash1466
4 жыл бұрын
Prefer book instead of video.
@ILovE2TRicKShoT0nMW2
4 жыл бұрын
@@rudranarayandash1466 I have not bought the book for this semester because we were just learning java and i had an old edition of what we needed but i am going to buy the book. The book we needed was "Introduction to Java Programming and Data Structures, Comprehensive Version, 11th Edition"
@evangelosspyromilios5994
4 жыл бұрын
Google knows us better than our teachers
@marko_pasa
4 жыл бұрын
Easy. Google reads your mails, listens your phone conversations.
Brilliant Resources You Provide Mosh 👍 You are an Excellent Teacher!
Love the graphics - esp the coffee in the beginning! Content is always exceptional!I have the bundle :)
@waqasbhatti4478
3 жыл бұрын
@@programmingwithmosh hi mosh can u make tutorials on javafx or java frameworks
Hey, , Mosh you really made coding simple thank you so much😊
Having a basic knowledge of java and having a Data Structure course currently, Im learning two Course at a time. Thank you.
I wish i could pay for a full course..... but i can't.... Thank you for the freebies you make available! well appreciated you are the best teacher i have had so far
Thank you for you uploading...i am learning python and java through u r videos but what use for me I don't have any programming job but still learning 😂 but I like it...
i feel sorry for those college professor who taught us like every thing about CS is difficult to understand. Mosh changed the game and made it to easy to understand every CS courses. we pay a lot for colleges for nthn but to stress our selves with exam with 0 knowledge. but with mosh we enjoyed the free courses and gain knldg with great presentation skill. we need 100 more of you in the tech world . THANK YOU!!
Mosh is simply a genius. His videos on programming concepts can be understood by ANYBODY
Great class! Have been waiting for your Java Advanced course - have you gotten any closer to releasing it?
I bought the course. Awesome teaching!
Amazing content. Thanks for sharing!
Super cool explanation, I think this is the best video that explains time complexity concepts so easy. I wish you were my engineering professor :)
I'm trying to follow along with the coding exercises in C#. When making the dynamic array, my results were kind of different. I have heard that C# and Java are fairly similar, but I was able to add or remove items from my array by just adding/deleting from inside the curly brackets. Am I missing the point and doing something wrong?
Well, that moment when you ask your parents for Christmas, a SUBSCRIPTION to watch Mosh courses. As soon as I saw you had a video about this topic. Instantly bought a subscription to your courses and told my parents it would be my christmas gift. :D Thanks this would be much appreciated since I am having troubles with how my teacher explain this at the university. Lots of variables with a,b,c,s,kmnnakfwofkvms and no real examples.
You Are the Great Sir You really Make the thing easy... Thank You sir that is the First Time I understand that what is DataStructure
Thanks Mosh! When can we expect the design patterns course? :)
Thanks so much, Mosh! It's a wonderful class.Thanks for being so patient with us. Thanks for sharing!
It is a great video. A great tutorial. There is a slight error in the addFirst method. It is necessary to create the link between the first and second node. I'm sure I'll buy the course. Congratulations!
Thank you Mosh! An awesome video as always (:
Very Perfect Java Programming Teaching Materials! Very Perfect Professors!
This course really helped clarifying some things i needed to know. Thanks a lot! (btw i also enrolled in the ultimate java and python courses and loved it!) Keep up the great work!
@akshaysharma145
2 жыл бұрын
could you please share your review about the ds and algo course on the website?
Wow, I'm taking Data Structure in Java next semester and this will be very helpful! Thanks!
@rozdede
4 жыл бұрын
Are you going to be a programmer.? Which university are you going?
@bogo4064
4 жыл бұрын
@@rozdede I hope so! I'm attending at U of M.
that is amazing course teacher that what i need thx a lot :)
I believe teaching is a wonderful gift from the Almighty , and you are blessed abundantly for sure . Amazing videos Mosh. I have been following urs for Python and now for DS .. Thanks!!
40:47 there is a small issue in the loop in the removeAt (i (i< cout-1)
@suryagowrisetti1112
3 жыл бұрын
Yes exactly. But for him it ran fine with exceptions. How is that?
I was just thinking about buying your course...and this popped up
@39:03 Shouldn't that loop end at i < count-1 ? Alternatively, decrease the count with count-- **before** the loop...
@alikifayat
4 жыл бұрын
Yes, I also noticed that
@redsantelices8498
4 жыл бұрын
Yes, I noticed it, but if you are going to decrement the count it will thow an out of bounds exception if your array has a size of 1
@landsgevaer
4 жыл бұрын
@@redsantelices8498 No it won't. You'll get for (int i = 0; i Then, the body of the loop will not be executed at all, which is what should happen.
@redsantelices8498
4 жыл бұрын
@@landsgevaer oh, I meant if the array size is 0.
@landsgevaer
4 жыл бұрын
@@redsantelices8498 that is caught a few lines earlier where an error is thrown if index >= count. And actually, getting an error when removing an element from an empty list seems entirely justifiable... ;-)
You Explained Big O in the easiest way possible, Thanks M.
13 minutes of video have thought me more than 1 whole week coding at hackerrank or doing coding excercises to find the proper algorythm... you sir are a master of masters
Thank u very much for this mosh Once again you rocked!💜💜💜
39:20 Note that the *removeAt* function is not written properly: *1* . *i* *
@suryagowrisetti1112
3 жыл бұрын
Came to comments wanting to say this. But deep inside I knew it has already been said. Found my saying already said. I have no more say to say, except to say that it is well said. Well said.
@suryagowrisetti1112
3 жыл бұрын
But again his machine ran it fine. How was that possible?
@ongtuananh4416
2 жыл бұрын
I also saw this point but I think even with this one you will remove the element but the last items[i+1] still remains unchanged, so you might need to have another check to deallocate the last element..
@pareshmkulkarni
2 жыл бұрын
Also, in the same removeat methond, after completing loop, count-- is added to remove last item which is still there. However count is just a tracker and does not really remove anything from Array. Because it is being used in Print method, it is giving impression that array does not include it. Please comment.
What a rabbit hole to go down from using yaml to learning about structured data thanks for the vid definitely helpful
Thank you a lot, I did all of this in c. I have been coding a while for hobby, but I never knew about big O & ...
This is awesome my man, keep it up!
Mosh you have a great way of explanation ❤️
Awesome tutorail . Thanks Mosh . Could you please share the full course link
speech delivery is perfect... no rapidly speech middle of video. awsome
Excellent explanation. Thank you so mush Sir 🙏🙏🙏
Best explanatory videos for Introduction to Programming
Hi Sir Mosh, could you please provide a print method? Im still confused about the topic :(
even your voice is soothing and it gives me motivation to watch more
I'm having trouble making sense of lines 22 and 23 at 1:01:22. I'm not familiar with Java and I know there's something to do with instances of objects being pointers, but I still don't understand how the properties of a pointer stay the same upon reassignment. EDIT: I understand now. On line 22 'last' in 'last.next' is an address who already has a node referencing it (its previous node). When we change 'last' on line 23, we're not changing the address that its previous node is referring to.
you're simply without fluff AMAZING!
@mouradaouinat8721
4 жыл бұрын
Programming with Mosh will do!
@Adarsh-pf8jc
3 жыл бұрын
Are u Moroccan ?? Do u learn java ?
Finally wait over, Mosh is back with Christmas gift
@vikramravichandran9607
4 жыл бұрын
@@programmingwithmosh We are so excited :)
Finally have been waiting for this for a very long time thanks very much @mosh
Love your teaching style Mosh
It is 100% worth watching!
Hi Mosh, Make Data Structures and Algorithms video using Python, It would be easily understandable and your courses are great🤩
I already have the course but I just came here to say that you are definitely more worth it than Joma-Tech charging $100 a year for his classes. Thank you for this awesome resource!
@akshaysharma145
2 жыл бұрын
could you please share which courses did you take by mosh? also if the react course is worth buying in 2022 as the version mentioned is 16.2. And hows the ds and algo course?
Hi Mosh Thank you for the video. It was really good. Is the full tutorial available in udemy?
This was really helpful thx!
Thanks Mosh for keep upgrading us