Breadth-first search in 4 minutes

Поделиться
HTML-код
  • Опубликовано: 7 сен 2024

Комментарии • 90

  • @MichaelSambol
    @MichaelSambol  2 года назад +24

    After I made the video, I changed the code in GitHub to use a deque instead of an array for the queue. This allows us to pop the first element in 0(1) time. More here: wiki.python.org/moin/TimeComplexity.

  • @leonh2140
    @leonh2140 Год назад +88

    I love that your slides are so minimalistic, for me it's the perfect amount of content to support what you say

  • @adhoc3018
    @adhoc3018 2 года назад +35

    It's good to see that you are back. Your past videos have helped me a lot, thank you.

  • @Hydrus_
    @Hydrus_ 2 года назад +30

    I have an algorithm test coming up on graphs and this came out at exactly the right time! Thank you!!

  • @mihailtrajkoski1774
    @mihailtrajkoski1774 7 месяцев назад +1

    Damn because of your videos, I managed to prepare for the exam tomorrow. I had no idea how I was going to get through so much material in one day, thank you.

  • @servantofthelord8147
    @servantofthelord8147 8 месяцев назад +4

    Wow, you've added so much value in such a short amount of time. Thank you sir!

  • @kumaravelrajan
    @kumaravelrajan 21 день назад

    I was looking for a to-the-point refresher of BFS. This was great. Thanks!

  • @Jeetuni
    @Jeetuni Год назад +5

    Michael Sambol should take the place of my tenured professor that teaches Algorithms.

  • @mey1823
    @mey1823 2 года назад +5

    Thank you for your quick illustrations! I enjoy your videos a lot.

  • @amaegbutah5957
    @amaegbutah5957 2 года назад +4

    You are literally saving my life! I’m so glad that you’re uploading again!!

  • @Motivational-Mango
    @Motivational-Mango 5 месяцев назад +2

    I learned more in 4 minutes than all the 30 years of my life

  • @guirck
    @guirck Год назад +5

    That is so concise! Perfectly explained!

  • @memeingthroughenglish7221
    @memeingthroughenglish7221 2 месяца назад

    I love your videos so much! Great illustrations, great explanations, many topics, and I can learn something completely new in under 5 minutes!

  • @NoOne-ev3jn
    @NoOne-ev3jn Год назад +3

    The Queue in place always go over my head, now with the visualisation it makes it a lot more easier and obvious 😅😅😅

  • @anasalnablsi3623
    @anasalnablsi3623 2 месяца назад

    honestly i understand it perfectly in that brief explanation
    many thanks to you

  • @kevincaballero6133
    @kevincaballero6133 Год назад +2

    Great video. Makes the concept very easy to understand. Thank you for the way you made it.

  • @user-kp3ox6cc9k
    @user-kp3ox6cc9k 8 месяцев назад

    Best Explanation on youtube so far..Every other video is from 15 to 20 minutes..and here you are doing it in 4 minutes😂

  • @Cloydz
    @Cloydz 2 года назад +2

    your videos keep me sane i swear

  • @JK-ls8kh
    @JK-ls8kh 2 года назад +3

    you are literally helping me to survive my exam :) big thanks

  • @anujain3350
    @anujain3350 Месяц назад

    such calm voice! Love it

  • @MrDummyKicker
    @MrDummyKicker Месяц назад

    I believe the queue was done in the opposite direction, but overall I learned a lot!

  • @nightshocker03
    @nightshocker03 Год назад

    Ive been using recursion in dfs thinking it would work here too
    Thank you for helping me realize my mistake

    • @MichaelSambol
      @MichaelSambol  Год назад +1

      Def easier iteratively for BFS! github.com/msambol/youtube/blob/master/search/breadth_first_search.py

  • @mateoldnsk2693
    @mateoldnsk2693 6 месяцев назад

    You saved my entire life. Thank you so much.

  • @smikkelbeer7890
    @smikkelbeer7890 Год назад

    Clear and straight forward. Thank you.

  • @kafychannel
    @kafychannel Год назад +1

    thank you so much for clear explanation

  • @dr.walidsoula
    @dr.walidsoula 2 года назад +1

    You deserve more views, thank you for your videos

  • @QuackDocElias
    @QuackDocElias 5 месяцев назад

    thank you, so much easier to understand

  • @marianpascu8474
    @marianpascu8474 Год назад

    Bro, you are a god of explaining and teaching, so quick, so simple, so smart, not like other teachers who sound like broken records and x2 speed you tube videos.

  • @yuezhang8313
    @yuezhang8313 Год назад

    Thanks for your clear explanation

  • @divelix2666
    @divelix2666 Год назад +2

    Why do you need "visited" queue? It can still work without it, doesn't it?
    UPD: just figured out that your algorithm is for general graph, but you apply it to a tree (special case of graph) so "visited" is redundant for tree case.

  • @ezio9595
    @ezio9595 Год назад

    very useful and straight to the point, it was useful thanks!

  • @crazycroze
    @crazycroze Год назад +1

    Legit the best explanation out there.

  • @RownitaTasneem-qf5sr
    @RownitaTasneem-qf5sr 2 года назад

    This video is well-explained.Thanks a lot for this ....

  • @brandoncazares8452
    @brandoncazares8452 Год назад

    Thanks, you literally saved my life.

  • @user-jf6dd2iy2s
    @user-jf6dd2iy2s 3 месяца назад

    Dude you are the best, cheers

  • @Nico1a5
    @Nico1a5 4 месяца назад +3

    And what are you searching for in there?

  • @victorkoroshilov9015
    @victorkoroshilov9015 2 года назад +1

    This man does not miss 🔥

  • @isabelcerdan4128
    @isabelcerdan4128 11 месяцев назад

    Thank you for this videos

  • @mohammedwissam2685
    @mohammedwissam2685 Месяц назад

    Love the way you explained the BFS, but is there a way to write the code using recursion?

  • @lennyb.9616
    @lennyb.9616 4 месяца назад

    thank you so much for explaining this in less than 5 min

  • @misterawkward930
    @misterawkward930 9 месяцев назад

    i love you so much and i hope you live a long happy life

  • @kristofkatona2188
    @kristofkatona2188 10 месяцев назад

    great video my

  • @WhiteFontStudios
    @WhiteFontStudios 10 месяцев назад +66

    My lord. Sometimes play back speed 2x just isn't enough

    • @bitwodeddemissie7955
      @bitwodeddemissie7955 6 месяцев назад +3

      Use revanced there is 5x

    • @legolorian3271
      @legolorian3271 4 месяца назад +30

      Maybe stop watching tik tok so you have an attention span longer than a minute

    • @NippieMan
      @NippieMan 4 месяца назад +5

      @@legolorian3271 he does talk pretty slow I won’t lie.

    • @lejuan9002
      @lejuan9002 Месяц назад +1

      ​@@legolorian3271 chad

  • @KBoxx
    @KBoxx 2 месяца назад

    He said first in first out and queue but is demonstrating a last in first out stack data structure.

  • @isimbulamadmobenibulsun660
    @isimbulamadmobenibulsun660 Год назад

    ty very muchh

  • @frederiquebaaij
    @frederiquebaaij 2 года назад +1

    Could you please make a video on the Hungarian Method for a bipartite graph, using only the graph? Or is this not a subject you can cover?

  • @dannggg
    @dannggg 2 года назад +1

    would be easier if you add what is the front and what is the end of the queue because other examples and other i see the queue is other way. I mean it doesn't matter since i figured it out after a few minutes but i think it would make it easier to understand quickly whats happening lol

    • @MichaelSambol
      @MichaelSambol  2 года назад +1

      I should have added that, you're right. Apologies!

    • @dannggg
      @dannggg 2 года назад

      @@MichaelSambol no worries just reviewing for algorithms test tomorrow And this really did helped me. Thanks for making these videos!!!

  • @jawadhaidar3931
    @jawadhaidar3931 8 месяцев назад

    Thank you for the vide! What is the addrd value of the last if statement

  • @f.u.spammers3846
    @f.u.spammers3846 2 года назад +1

    Why not make "visited" a property of the node object so you don't have to create a separate 'visited' array?

    • @headyshotta5777
      @headyshotta5777 Год назад +4

      what if you have to run more than one search on the same set of nodes? you would have to traverse the entire tree twice to reset your nodes for a single search. with an array you can just clear it. Much easier.

  • @kvelez
    @kvelez 9 месяцев назад

    Great.

  • @SAMUELE663
    @SAMUELE663 23 дня назад

    So what is optimal solution of your sample? Path????

  • @arjunyonzan8557
    @arjunyonzan8557 Год назад

    Thanks

  • @danielkerber8761
    @danielkerber8761 Год назад

    you mentioned the use of queue, but used a stack with pop function, no?

    • @MichaelSambol
      @MichaelSambol  Год назад

      The concept is the same where the abstract data structure is a queue, i.e., FIFO. In the video I used an array and did pop(0), but I later switched the code to use deque and popleft() [same concept as pop(0)] because it's more efficient. See here: github.com/msambol/youtube/blob/master/search/breadth_first_search.py#L17-L19.
      Let me know if that doesn't make sense!

  • @jaironicolasgomez1349
    @jaironicolasgomez1349 Год назад

    I love you!

  • @Xolomilco
    @Xolomilco 6 месяцев назад

    Confusing how you pop the [0] element yet you show that element as being on the far right of the array order, which would not be the [0] element in actual code...

    • @MichaelSambol
      @MichaelSambol  6 месяцев назад

      Sorry that's confusing! Check the latest code here, I hope it clarifies it: github.com/msambol/dsa/blob/master/search/breadth_first_search.py.

  • @kdewanik
    @kdewanik Год назад

    Respect 🫡

  • @cupofjava5480
    @cupofjava5480 Год назад

    1:31 isn't the que popping 'C' first ?

  • @tutaf
    @tutaf 5 месяцев назад

    Muhammad Sumbul 😳😳

  • @danielkim7024
    @danielkim7024 4 месяца назад

    What happens if the graph in question contains cycles? If we're marking nodes as visited when we pop them, won't that mean there will be multiple instances of a node being enqueued into the queue until they are actually reached and dequeued i.e. marked visited?

  • @hellogais2177
    @hellogais2177 6 месяцев назад +4

    You say first in first out like we are supposed to know where you put elements in and out, can't you put them in either at the top or at the bottom? And why do you say vertically and horizontally without showing a tree, the orientation can be different, we have to fast forward to see what tree you have in your mind, but we can't read yours

  • @ramyakavyar
    @ramyakavyar Год назад

    Hi, the audio is not clear on your videos. It goes on mute in between for a few seconds. Could you please fix this on all your videos. It would be really helpful. Thanks.

    • @MichaelSambol
      @MichaelSambol  Год назад

      Sorry about that. I'm working on the right settings. Thanks for the feedback.

    • @MichaelSambol
      @MichaelSambol  Год назад

      Is my latest video better, on Fibonacci heaps?

    • @ramyakavyar
      @ramyakavyar Год назад

      @@MichaelSambol Nope. It isn't any better. Fibonacci heaps also has the same issue.

  • @velerus3620
    @velerus3620 2 года назад +1

    First

  • @amirhoxha6231
    @amirhoxha6231 Год назад

    o nanq

  • @ogolasaura1805
    @ogolasaura1805 11 месяцев назад

    you code has issues i think this is the right way for BFS
    def bfs(graph, node):
    visited = []
    queue = []
    visited.append(node)
    queue.append(node)
    while queue:
    s = queue.pop(0)
    print(s, end=" ")
    for n in graph[s]: # Corrected indentation
    if n not in visited:
    visited.append(n)
    queue.append(n)

    • @MichaelSambol
      @MichaelSambol  11 месяцев назад

      Definitely a few different ways to do it. See here: github.com/msambol/dsa/blob/master/search/breadth_first_search.py

  • @jefferson5773
    @jefferson5773 Год назад

    thank you for your clear explanation