Top 7 Algorithms for Coding Interviews Explained SIMPLY

Поділитися
Вставка
  • Опубліковано 21 лис 2024

КОМЕНТАРІ • 216

  • @Codebagel
    @Codebagel  2 роки тому +77

    Hey guys! Sorry for lack of uploads lately, hopefully this 20 MINUTE comprehensive guide to algorithms makes up for it a bit! Please like and share with friends, I worked really hard on it and want it to help lots of people!

    • @ReluctantSpirit
      @ReluctantSpirit 8 місяців тому +1

      This video is one of the finest and well defined educational video on algorithms.

    • @ClashClash89
      @ClashClash89 4 місяці тому +1

      Amusing footnote on the travelling salesman problem: The Japanese used a mushroom to map out an optimised solution for their railway network, by using oat flakes as „stations“, and the mycelial strings that grew the strongest where those linking the „stations“ with the shortest possible route.
      Bio-computer solving the problem via nutrient-gradient.

    • @tahirabatool2763
      @tahirabatool2763 3 місяці тому

      Hello I would like to suggest something, the colors in this video were not very "popping" lets call it. In the video you have shown multiple times a binary tree where a few nodes are light purple and a few nodes are dark purple. I would like to suggest that you make the dark nodes more dark so as to make sure the color difference is able to be seen easily. You really have to concentrate to view them. Also Could you make a dedicated video to Binary Trees next? That would be a great help for me

  • @shadowrl7637
    @shadowrl7637 9 місяців тому +190

    Algorithms
    Binary Search:
    - Used to find a specific element in a sorted list efficiently.
    - Inefficient: O(n) for linear search, incrementally guessing from start to end.
    - Efficient: O(log2(n)) for binary search, repeatedly dividing the search interval in half until the correct element is found.
    Depth-First Search (DFS):
    - Begins at the root node and explores as far as possible along each branch before backtracking.
    - Utilizes a visited array to track already visited nodes.
    - Continues backtracking until all nodes are visited.
    - Real-life example: Solving a maze by systematically exploring paths until the exit is found.
    Breadth-First Search (BFS):
    - Looks at every node at one level before going down to the next level.
    - Utilizes a visited array to track already visited nodes and a queue to keep track of neighbors.
    - Begins at the root node and adds it to the visited array and all its connected nodes to the queue, then continues to explore nodes level by level.
    - Real-life example: Chess algorithms predict the best move by exploring possible moves at each level of the game tree.
    - Runtime: O(V + E), where V is the number of vertices and E is the number of edges.
    Insertion Sort:
    - Examine’s each element in the list, comparing it with the previous elements and shifting them to the right until the correct position for insertion is found.
    - Simple sorting algorithm suitable for small datasets or nearly sorted arrays.
    - Runtime:
    - Best case: O(n) when the list is already sorted.
    - Worst case: O(n^2) when the list is sorted in reverse order.
    - Efficient for small or nearly sorted lists, but inefficient for large unsorted lists.
    Merge Sort:
    - A divide-and-conquer sorting algorithm that breaks the problem into smaller subproblems and solves them recursively.
    - Starts by splitting the array into halves recursively until each subarray consists of single elements.
    - Merges pairs of subarrays by comparing elements and placing them in sorted order.
    - Continues merging subarrays until the full array is sorted.
    - Runtime: O(n log(n)) in both best and worst cases, making it efficient for large datasets.
    Quick Sort:
    - A complex sorting algorithm that follows the divide-and-conquer approach and is recursive.
    - Selects a pivot element, ideally close to the median, and partitions the list into two sublists: one with elements greater than the pivot and the other with elements less than the pivot.
    - Continues the process recursively on each sublist until the entire list is sorted.
    - Utilizes a pivot element that is moved to the end of the list, with pointers positioned at the leftmost and rightmost elements.
    - Compares the elements pointed to by the left and right pointers, swapping them if necessary, until the pointers cross.
    - Once the pivot is correctly positioned, the process repeats on the sublists.
    - Runtime:
    - Best case: O(n log(n)), when the pivot consistently divides the list into approximately equal halves.
    - Worst case: O(n^2), when the pivot selection consistently results in unbalanced partitions.
    Greedy Algorithm:
    - A problem-solving approach that makes the locally optimal choice at each stage with the hope of finding a global optimum.
    - May not always guarantee an optimal solution but is often simple and efficient.
    - Real-life example: Finding the shortest path in a weighted graph using Dijkstra's algorithm, where at each step, the algorithm selects the vertex with the smallest distance from the source.

    • @Leonhart_93
      @Leonhart_93 7 місяців тому +4

      Good work, works for adding to quick documentation

    • @ptd3v
      @ptd3v 7 місяців тому +5

      My man

    • @Lu3ck
      @Lu3ck 7 місяців тому +6

      Not all hero’s wear capes

    • @TarasovFrontDev
      @TarasovFrontDev 5 місяців тому

      God bless you!

    • @chinmays420
      @chinmays420 4 місяці тому

      Thanks mate you saved the day ! :)

  • @jasonbelcher4476
    @jasonbelcher4476 4 місяці тому +20

    I love how you put each algorithm into a use case context. That is literally the only way my interest based nervous system works. My hat is off to you sir. Keep it up.

  • @Redyf
    @Redyf 9 місяців тому +55

    Code examples would help a lot too, great video

  • @tamalpaul4928
    @tamalpaul4928 8 місяців тому +7

    Brother, You gotta be my best teacher on youtube. You making lesson just the way I want. You start a topic by first being pause. Then continue with the easiest way possible.
    Please make more videos like these.

  • @danielstephengilbert
    @danielstephengilbert 3 дні тому

    Codebagel is officially my favorite DSA channel. Thank you!

  • @ngocchaunguyen1195
    @ngocchaunguyen1195 9 місяців тому +2

    This is an incredible video. I didn't understand most algorithms as a student, because I focused on theories and code. This video helps me save time in understanding these popular algorithms. Indeed, I rarely use them in my work, it is simply because we don't have many situations to apply. I usually use linear search in JavaScript. there was a time I had a problem with sort of 10,000 objects. I have to use the binary-sort library without understanding. Once again, thanks for your video.

  • @bb-xj9ed
    @bb-xj9ed Рік тому +343

    thank you bro, my gf broke up with me so i have nothing but to learn algos, your video made me laugh at the greedy algo part. thank you u earned a sub

    • @vedagyasharma5438
      @vedagyasharma5438 9 місяців тому +15

      stay strong brother!

    • @ryostyles9904
      @ryostyles9904 9 місяців тому +12

      Great choice bro

    • @airman122469
      @airman122469 9 місяців тому +17

      Sounds like you just need some greedy algos and a creative application of the traveling salesman problem.
      (Routes through all bars, and pickup techniques)

    • @kaushalrautela6
      @kaushalrautela6 9 місяців тому +21

      Broke up and still leveling up GOD mode acticated 🤖

    • @wadzanaikanongovere4798
      @wadzanaikanongovere4798 9 місяців тому +2

      Looks like someone was greedy 😂😂😂😂

  • @NikosS-i9d
    @NikosS-i9d Місяць тому +1

    Why does this channel have only 55.6K subscribers? Dude you are a gem! Love your videos, they are very helpful!

  • @wlqpqpqlqmwnhssisjw6055
    @wlqpqpqlqmwnhssisjw6055 2 роки тому +8

    You should explain how machine learning works and more of that types of videos too ,your explanation is on another level

    • @Codebagel
      @Codebagel  2 роки тому +5

      Thanks so much! I’ll definitely tackle machine learning at some point in the near future, it’s on the list of future videos!

  • @bigyabajracharya5681
    @bigyabajracharya5681 5 місяців тому +3

    Commenting for the youtube algorithm! Binge watching your videos to prepare for my technical interview. VERY helpful!!

    • @Codebagel
      @Codebagel  5 місяців тому

      Thanks so much! More coming soon 👀

  • @largato12345
    @largato12345 2 місяці тому +1

    just found your channel and the videos are awesome. Amazing balance between simplicity and coverage for the topics

  • @LenSys-AE
    @LenSys-AE Місяць тому +1

    Thank you for simplifying algorithms for me! I learned a lot from you, keep up this amazing tutoring 🙏🏻

  • @Obzrve
    @Obzrve 2 місяці тому

    I’m currently taking Data Structures. So this is coming very handy.

  • @BbB-vr9uh
    @BbB-vr9uh Місяць тому

    Thanks for this video! I’m starting to prepare for technical interviews now, and this is a big help!

  • @originallyme135
    @originallyme135 Рік тому +9

    This video is amazing! I was so surprised when I went to subscribe that you only had 5k subscribers, from the quality of these videos I expected at least 100k! Thank you for your awesome work, you really helped me a lot

  • @LastShade
    @LastShade 6 місяців тому

    For the traveling salesman, I would use a set of controlled variables that you could programmatically cycle through to optimize results. One example would be a tolerance on overlapping routes. Cycle through 0-10 overlaps and calculate results. Compare results. As long as you keep the number of variables and variable values low, it’s a great way to squeeze out extra optimization.

  • @redfinance3403
    @redfinance3403 5 місяців тому +2

    The quality of your videos is insane! Keep going, the growth of your channel is bound to happen!

  • @durantburner7428
    @durantburner7428 2 роки тому +4

    With content like this you'll be big in no time, excited for what's to come!

    • @Codebagel
      @Codebagel  2 роки тому +1

      Thank you so much! I really appreciate the support!

  • @semilife
    @semilife 4 місяці тому +1

    Bravo, the effort shows in the quality, detail and simple concise delivery.

  • @markost.8944
    @markost.8944 2 місяці тому

    Bro, these explanations are truly great and easily digestible. Hopefully there is more to come!

  • @theartofclips895
    @theartofclips895 Місяць тому +1

    Where are you , its been 2 years
    Your videos are soo good we need more

  • @katurr_Real_Estate
    @katurr_Real_Estate 6 місяців тому +1

    This is the best explained algorithm I came across

  • @antonthordarson3610
    @antonthordarson3610 7 місяців тому

    This is great, Very well explained and straight to the point. Way better than any teacher I have seen explain this..

  • @FaheemQazi
    @FaheemQazi 9 місяців тому +2

    Hi, i really like the graphical representation of these topics in simple manner, however i think that @10:40 the explanation of bubble sort is mentioned as insertion sort.

  • @omgh8287
    @omgh8287 2 роки тому +14

    I enjoyed the explanations and presentation about the different important algorithms in this video. I am subscribing to this channel in the hope of similar good content in the future. Wish you the best with growing your channel :)

    • @Codebagel
      @Codebagel  2 роки тому +1

      Thanks so much! I’m glad you enjoyed it. Content will definitely continue to get even better, so I’m happy you’re going to stick around :)

  • @tarunpanchal1902
    @tarunpanchal1902 5 місяців тому +1

    Your representation helps me understand better thanks for you help

  • @coffeewithgoutam
    @coffeewithgoutam 6 місяців тому

    Explaining Data Structures with Code Examples would be more beneficial. This video is informative too.

  • @tony310430
    @tony310430 8 місяців тому

    no hay un video que te enseñe todo, al final debemos consumir mucho contenido de calidad e intentar quedarnos con lo positivo de dicho contenido para internalizarlo y realmente poder implementarlo de manera adecuada. Este video a mi criterio cumple con el criterio de ser un video de calidad.... No comenté en inglés porque siento que los hispano hablantes que no son angloparlantes merecen también hacerse notar en las cuentas de tecnología donde usualmente solamente se habla inglés

  • @mitkomilev4690
    @mitkomilev4690 9 місяців тому

    Good explanation, thank you. A small note for the quicksort -
    keep in mind that the unshift operation at 13:44 is really computational costly as you will have to unshift all elements to the left. It is better to just swap the chosen pivot element with the last one.

  • @好了-t4d
    @好了-t4d 6 місяців тому +1

    This vid is doing quite well for explaining,appreacting your hard work.

  • @hanshalili174
    @hanshalili174 Місяць тому

    Loving your channel bro! The examples you give are insightful.

  • @lintruly6269
    @lintruly6269 5 місяців тому

    I start learning data science because the curiosity. I used to learn math and data structure before but I don’t know where to apply so now is different I can know.

  • @simonetumolillo9400
    @simonetumolillo9400 2 роки тому +1

    I love the fact that you took the time for writing the outcome numbers of TSP in the comments haha. Nice work as always, keep it up!

    • @Codebagel
      @Codebagel  2 роки тому

      Haha yeah, to me that’s such a strong way to explain why certain algorithms are used. I’m glad you enjoyed!

  • @therealzeon
    @therealzeon 2 роки тому +3

    I know ur working hard my guy but keep pushing you'll breeze to 100 k by the end of the year dw 💪🧠
    Keep up the amazing content man

    • @Codebagel
      @Codebagel  2 роки тому

      Thanks so much! Been such a grind lately with everything going on, but definitely going to start pumping out more videos so that’s good :)

  • @2gelKifissias
    @2gelKifissias 10 місяців тому

    I really wonder how this video hasn't blown up after a whole year

  • @i_am_spex6312
    @i_am_spex6312 11 місяців тому +1

    Dude , you explain so well. Thank you

  • @dabunnisher29
    @dabunnisher29 3 місяці тому

    This video got me liked and subscribed. You explained this really well.

  • @arthurmorgan718
    @arthurmorgan718 2 роки тому +4

    Your content is literally quality over quantity , keep the good work man

    • @Codebagel
      @Codebagel  2 роки тому +1

      Thank you! I really appreciate it :)

  • @adeyemiowolabi6062
    @adeyemiowolabi6062 6 місяців тому +1

    A very well done sir. God bless your effort & reward you. 🙏

  • @YoYouWildinBro
    @YoYouWildinBro 2 роки тому +1

    When I get my coding gig in the future, I'm gonna look back at these videos and think "This is why I landed this job".

    • @Codebagel
      @Codebagel  2 роки тому +1

      Wow, you have no idea how awesome that is to hear. Thank you so much for that, and I hope I can continue to keep helping you on your journey towards breaking into the tech industry!

  • @jamesf2697
    @jamesf2697 3 місяці тому

    I wish you would have just added an example code for each. But great video, keep up the good work!

  • @TarasovFrontDev
    @TarasovFrontDev 3 місяці тому

    Omg, that’s so cool! Outstanding work!

  • @thaisb.7708
    @thaisb.7708 8 місяців тому

    Amazing content, very clearly explained and the illustrations helped a lot, thank you for sharing.

  • @yuqingpeng6523
    @yuqingpeng6523 2 роки тому +1

    Very detailed explanation as always! I learnt a lot, thank you so much!!

    • @Codebagel
      @Codebagel  2 роки тому

      You’re welcome! Thanks for the kind words :)

  • @Antariksha
    @Antariksha 2 роки тому +1

    Please keep going, your explanations are on point! Subscribed.

  • @chrisogonas
    @chrisogonas 2 місяці тому

    Well illustrated! Thanks

  • @NormieDead
    @NormieDead 7 місяців тому

    thank you soo much.
    i know this could have taken so much affrords to make .

  • @voegel
    @voegel 2 роки тому +1

    Thank you for this comprehensive video! 21 minutes is a good length. Btw, did your job interviews went well?

    • @voegel
      @voegel 2 роки тому +1

      Oh and here is some advice that I think might be helpful: I know music in videos is vastly used, but mostly it‘s a bit too much. The music in this video was okay, but I actually liked the music-free videos more. They *seem* to me better structured/clean. I know this video has the same great content as always, but (maybe it‘s just me) I have problems following you. Idk, maybe I‘m wrong and using music is a good idea ^^ Just a friendly tip :)

    • @Codebagel
      @Codebagel  2 роки тому

      @@voegel thank you for the feedback! I’ve been experimenting a bit with the music, but I get that it might be a bit hard to follow with it. I’m going to experiment a bit with audio levels/not including it at all, thanks for letting me know :)

  • @lenicholstech
    @lenicholstech 4 місяці тому +1

    Excellent explanation!

  • @hassanriaz4274
    @hassanriaz4274 6 місяців тому +1

    Thank you so much for this detailed video bro👊👊

  • @LeninMcDonalds
    @LeninMcDonalds 2 місяці тому

    Love it thanks for such a clear explanation with examples . Liked and subbed

  • @MadhuKumar-zi4qp
    @MadhuKumar-zi4qp 9 місяців тому +1

    easy to understand bro.. great. Thanks!

  • @seannaeger9563
    @seannaeger9563 9 місяців тому

    I've been trying to understand these concepts for ages. Your videos rock! Even if you spell neighbor wrong. 🙂

  • @sujeet4410
    @sujeet4410 2 роки тому +2

    I was here before this channel exploded. Keep the contents coming.

    • @Codebagel
      @Codebagel  2 роки тому

      Thanks so much Sujeet! I’ll keep working towards making better and better content for you to enjoy!

  • @a.rohimsama7222
    @a.rohimsama7222 7 місяців тому

    Great explanation! Thank you

  • @voegel
    @voegel 2 роки тому +1

    Hey, I‘m wondering if you are still planning to make a video about how to pass the resume screening? That might be quite interesting :)

    • @Codebagel
      @Codebagel  2 роки тому

      Yes, it’s actually the next video coming out! I’m hoping to get it finished and uploaded for Monday! :)

    • @Codebagel
      @Codebagel  2 роки тому

      Okay so I didn’t finish it in time for Monday haha, had 2 last minute interviews come up. It will be out by tomorrow though, guaranteed!

  • @hlubradio2318
    @hlubradio2318 6 місяців тому

    This so weird. I leaned all these in 1994 to 1997 but never heard of greedy or maybe I did but I certainly remembered the shortest path algorithm which is greedy

  • @ektasingh5967
    @ektasingh5967 7 місяців тому

    I love all of your videos. Amazing they are. Please make videos on System Design as well.

  • @DavoMelendez
    @DavoMelendez 2 місяці тому

    great video... straightforward explanations

  • @akshaypatelindia
    @akshaypatelindia 7 місяців тому

    Really impressive contents mate keep going . appreciate you'r contents and efforts. :)

  • @aaryankedia3919
    @aaryankedia3919 Рік тому

    Hey, Thanks for the video.
    I am a final year CSE student and I have the placement season starting soon. I am left with a lot of DSA. Could you suggest me with some tips?

  • @sreyakarmakar4248
    @sreyakarmakar4248 9 місяців тому

    Dynamic Programming left the chat..🏃🏻‍♂️🏃🏻‍♂️
    PS: amazing visuals & explanations. Thanks ❤

  • @mohammedswiti3842
    @mohammedswiti3842 4 місяці тому

    Amazing!! You helped me so much!!

  • @hemakumargantepallidataandai
    @hemakumargantepallidataandai 5 місяців тому

    Like your voice, subcribed to listen it as frequently as possible.

  • @sbharathi3394
    @sbharathi3394 4 дні тому

    Only problem with dsa is practical approach... theory part understood well and coding of those sortings are somewhat difficult...do we need to bihot the logic?

  • @khndokar2382
    @khndokar2382 11 місяців тому

    can you please upload the separate data structure videos? i really liked the hashmap one

  • @mesta3329
    @mesta3329 9 місяців тому

    Great job bro. It was very interesting & easy to understant

  • @hlubradio2318
    @hlubradio2318 6 місяців тому

    Thanks I'll subscribe for your hard work. Now to implement them in Python.

  • @shubhsharma19
    @shubhsharma19 3 місяці тому

    Underrated channel Subbed!!

  • @khndokar2382
    @khndokar2382 11 місяців тому

    Love your videos ! please do more, ive learned so much

  • @egsnowindy
    @egsnowindy 7 місяців тому

    Thanks for the video.
    Note: Merge sort is not properly explained.
    1. it requires creation of temporary arrays of size equal to the sorted array.
    2. the "merging" process itself is not highlighted in video.

  • @pptmtz
    @pptmtz 5 місяців тому

    Thanks, great explanation

  • @oulaoula349
    @oulaoula349 7 місяців тому

    Travelling salesman problem is à good support to practise genetic algorithms

  • @ankiitamalik
    @ankiitamalik 8 місяців тому

    Thanks🙏 very clear explanation

  • @llmll6447
    @llmll6447 8 місяців тому

    Very good explanation

  • @AkshayRaikwar-jq6pg
    @AkshayRaikwar-jq6pg Місяць тому

    i think i am not getting the insertion sort because you are saying that we swap the value but we swap the value in the bubble sort and in the insertion sort we catch the value of index [0] and then we compare with that value and assign the position here is the code
    public static int[] Insertionsort(int[] Element)
    {
    //[5,10,8,6,2,1]
    int n =Element.Length;
    for (int i = 1; i < n; i++)
    {
    int temp = Element[i]; //10
    int j = i - 1; //0
    while ((j >= 0) && Element[j] > temp ) // 10 >8
    {
    Element[j + 1] = Element[j];
    j--;
    }
    Element[j + 1] = temp;
    }
    return Element;
    }

  • @Sachin-je7ue
    @Sachin-je7ue 8 місяців тому

    Well explained but you mentioned binary search only works for sorted list but it is not true .It also works for unsorted.

  • @chamarr
    @chamarr 2 роки тому +1

    can you possible make a video on how to code up these algorithms? that is what i have the most trouble with

    • @Codebagel
      @Codebagel  2 роки тому +1

      Yes! That’s what’s coming out next! I’ll be doing kind of 8-10 minute in-depth videos explaining how the code works, and how to solve problems of using the algorithm! Stay tuned :)

    • @chamarr
      @chamarr 2 роки тому +1

      @@Codebagel yessir goated youtuber🐐

  • @MeditateRelaxEtcetera
    @MeditateRelaxEtcetera 8 місяців тому

    Great explanation!👍

  • @franciagarciaromero2589
    @franciagarciaromero2589 8 місяців тому

    Loved this, please make more videos

  • @EngrUsmanx
    @EngrUsmanx 5 місяців тому

    And here I am a civil engineer loving C++! And hence learning programming algos. 😂

  • @user-do8mv9ow6d
    @user-do8mv9ow6d 3 місяці тому

    Can u plz do the selection sort

  • @abyss_v
    @abyss_v 9 місяців тому

    Great video, helped me a lot

  • @vasylshkrum8007
    @vasylshkrum8007 9 місяців тому

    Great job, mate!

  • @chamarr
    @chamarr 2 роки тому +2

    goated video🐐🐐

  • @badmadmat20
    @badmadmat20 4 місяці тому

    Pseudo code would be very helpful.

  • @user-do8mv9ow6d
    @user-do8mv9ow6d 3 місяці тому

    This video is very helpful ❤

  • @muhannadalsabbagh8956
    @muhannadalsabbagh8956 Рік тому +2

    Really appreciate your work but you are wrong about the insertion sort algorithm you explained the bubble sort insertion sort will compare each number with the previous numbers and put it in place. Hope you will fix the video

    • @panthrax555
      @panthrax555 9 місяців тому +1

      I came here to say this. I've not heard of insertion sort before, this is definitely a Bubble sort.

  • @deniz.7200
    @deniz.7200 9 місяців тому

    DFS and BFS require sorted binary trees to operate, right?

  • @YamiHoward
    @YamiHoward 2 місяці тому

    Greedy sort is not used when you need an ACCURATE answer, not efficient as you initially stated. The CC has it correct later on. Important difference though, as greedy sort is way more efficient when you're looking at impossibly large possibilities!

  • @bonginscandinavia
    @bonginscandinavia 7 місяців тому

    Great explaination. 👍

  • @kayfintedch
    @kayfintedch 8 місяців тому

    Man, this just helped me so much in ways I can't even explain. Took the entire time taking notes and all. Really appreciate the hard work that was put into this, like and sub from me cheers!

  • @FaberLSH
    @FaberLSH 4 місяці тому

    Thank you so much!

  • @rondlh20
    @rondlh20 7 місяців тому +1

    11:48 How does this sorting work in detail?

  • @TrishalWalia
    @TrishalWalia 7 місяців тому

    Best Explanation!

  • @beeTechSE
    @beeTechSE 8 місяців тому

    Wait for Dynamic programming video 😁🤘

  • @ann.z.z.
    @ann.z.z. 7 місяців тому

    Thank you so much, amazing content

  • @catarinaivf
    @catarinaivf Рік тому

    It was really great! Thanks

  • @yash1152
    @yash1152 27 днів тому

    0:10 BFS & DFS are not searches, they are traversals
    0:22 greedy is not algorithm, its an approach