Graph Data Structure 4. Dijkstra’s Shortest Path Algorithm

แชร์
ฝัง
  • เผยแพร่เมื่อ 12 พ.ค. 2024
  • This is the fourth in a series of computer science videos about the graph data structure. This is an explanation of Dijkstra’s algorithm for finding the shortest path between one vertex in a graph and another. Indeed, this explains how Dijkstra’s shortest path algorithm generates a set of information that includes the shortest paths from a starting vertex and every other vertex in the graph. It also mentions why Dijkstra’s shortest path algorithm is an example of a greedy algorithm.

ความคิดเห็น • 810

  • @daringdarius5686
    @daringdarius5686 4 ปีที่แล้ว +870

    I don't know if you know this, and this is 4 years late, but this is one of the cleanest, easiest to understand video's (conceptually-wise) for Dijkstra's.
    I've seen several, but this! This is the best one. :)

    • @ComputerScienceLessons
      @ComputerScienceLessons  4 ปีที่แล้ว +78

      Great to hear! :)KD

    • @vijayalakshmi0714
      @vijayalakshmi0714 2 ปีที่แล้ว +7

      @@ComputerScienceLessons lol, but i'm listening even now, best explanation. Keep it up

    • @eatbreathedatascience9593
      @eatbreathedatascience9593 2 ปีที่แล้ว +3

      I agree fully. Best !

    • @tudorradu5848
      @tudorradu5848 ปีที่แล้ว +2

      @@ComputerScienceLessons He's right! It was veryyy easy to understand. Thank you

    • @555aboud
      @555aboud 4 หลายเดือนก่อน

      stunning, clear explanation. Thank you so much!!!

  • @assansanogo1343
    @assansanogo1343 7 ปีที่แล้ว +1281

    FINALLY SOME CLEAR STUFF. almost crying

  • @SouravendraKrishnaDeb
    @SouravendraKrishnaDeb 4 ปีที่แล้ว +534

    We won't be visiting A, again.
    Me: CRIES LOUDLY

  • @royazut550
    @royazut550 7 ปีที่แล้ว +257

    !!!finally a good and simple explanation
    oh tears of joy...
    may the gods bless you with bugless codes

    • @neelparekh9846
      @neelparekh9846 4 ปีที่แล้ว +7

      "May the gods bless you with bug-less codes."
      I'm going to use that a lot.

    • @neptechbyte
      @neptechbyte 3 ปีที่แล้ว

      haha epic comment bro

  • @adityapappu4963
    @adityapappu4963 4 ปีที่แล้ว +148

    This is literally one of the cleanest, simplest, no-nonsense beautiful explanations of an algorithm I have ever watched on TH-cam. Amazing. To-the-point. Crisp. And so easy to understand and digest. THANK YOU.

  • @amine_fadssi
    @amine_fadssi ปีที่แล้ว +18

    The best video on the internet explaining the Dijkstra’s algorithm, thanks a lot sir.

  • @reiniervanleeuwen9815
    @reiniervanleeuwen9815 4 ปีที่แล้ว +117

    This has to be the best explanation of Dijkstra's Shortest Path algorithm... Thanks a lot!

  • @hadeneh
    @hadeneh 6 ปีที่แล้ว +169

    I signed in just to like this video.

  • @johnstorm589
    @johnstorm589 ปีที่แล้ว +8

    Even 6 years later, this is still the best explanation ever

  • @jackych5055
    @jackych5055 3 ปีที่แล้ว +6

    man this Dijkstra guy deserved a nobel prize for it

  • @ComputerScienceLessons
    @ComputerScienceLessons  7 ปีที่แล้ว +85

    Hi FTP
    My scenario is for a non-directed graph (you can go backwards and forwards on any edge), so all the nodes can indeed be reached. However, for a directed graph, some nodes may be unreachable from the given start, as you have intimated. Dijkstra's algorithm finds the shortest paths only to the nodes that can be reached from the starting node. (if there is no path to a node from the start, it's irrelevant). The loop will end when all 'reachable' vertices have been visited. By the way, Dijkstra's algorithm doesn't work if the graph edges have negative weights.

  • @matthewsattam1982
    @matthewsattam1982 6 ปีที่แล้ว +96

    Extremely clear, extremely well put together visually. Well done, and thank you.

  • @mikefriedman9573
    @mikefriedman9573 4 ปีที่แล้ว +20

    Absolutely the best explanation. Cleared up any and all lingering questions in my mind.

  • @timuralmamedov1900
    @timuralmamedov1900 6 ปีที่แล้ว +3

    Great explanation! Finally, I understood it. The table really helps to not get lost. Thank you so much!

  • @TANEM315
    @TANEM315 7 ปีที่แล้ว +15

    You sir are BY FAR the BEST teacher of algorithms on TH-cam or anywhere else I've seen algorithm lectures. THANK YOU FOR POSTING THIS! With your well-paced, methodical style you could probably teach anything!!!!

  • @freddyrodriguez5434
    @freddyrodriguez5434 ปีที่แล้ว +3

    I can't believe how well done this video was made. I appreciate your hard work at a visual representation of this algorithm.

  • @lewistian7975
    @lewistian7975 5 ปีที่แล้ว +13

    BEST explanation of Dijkstra's algorithm EVER!

  • @taruchitgoyal3735
    @taruchitgoyal3735 7 หลายเดือนก่อน +5

    I haven't found a better tutorial than this for understanding and computing distances using Dijkstra's algorithm. Thank you so much.

  • @SpaceDisco1
    @SpaceDisco1 4 ปีที่แล้ว +6

    It's really interesting, how sometimes one thorough example can clear up everything.

  • @Satharus
    @Satharus 5 ปีที่แล้ว +4

    Thank you!
    This is the single best video explaining the algorithm on TH-cam.

  • @tundet8963
    @tundet8963 7 ปีที่แล้ว +2

    Excellent work, Clarity, and explanation at all stages. Thanks, keep up the good work

  • @jacklimestone2559
    @jacklimestone2559 5 ปีที่แล้ว +2

    Thank you! This really helped me out with my assignment! Nice accent, clear explanation, and visually pleasing.

  • @Museko
    @Museko 7 ปีที่แล้ว +40

    I'm watching a bunch of your videos to review for my Algorithms exam. Thanks a bunch for making these!

    • @ComputerScienceLessons
      @ComputerScienceLessons  7 ปีที่แล้ว +6

      Thanks for the comment. It's good to hear you're finding them useful. :)

  • @markh1791
    @markh1791 2 ปีที่แล้ว

    The clearest, and most succinct, explanation of Dijkstra's algo I've seen. Thanks!

  • @MinecraftLetstime
    @MinecraftLetstime 6 ปีที่แล้ว +4

    By far the best video for explaining this algorithm! Perfect.

  • @tumarisyalqun7327
    @tumarisyalqun7327 5 ปีที่แล้ว

    This is so far the best explanation I have seen, thank you so much!

  • @ayasswain
    @ayasswain 6 ปีที่แล้ว +1

    Wonderfully explained. The best video i have come across so far on Djikstra's Algorithm.

  • @ronglass5968
    @ronglass5968 3 ปีที่แล้ว +8

    The VERY clearest and well-paced explanation by far! Thanks!

  • @JamshadAhmad
    @JamshadAhmad 4 ปีที่แล้ว +3

    This video is a definition of precise and concise explanation. Thank you very much.

  • @tartarus1322
    @tartarus1322 4 ปีที่แล้ว +13

    I wish I could upvote this more than once. It is honestly a brilliant, clear, and concise explanation

    • @ComputerScienceLessons
      @ComputerScienceLessons  4 ปีที่แล้ว +1

      You are very kind. Thanks. :) KD

    • @chinthalaadireddy2165
      @chinthalaadireddy2165 ปีที่แล้ว

      @@ComputerScienceLessons But really it's awesome video.. the best info in the least possible time.. Thank you so much from India 🥰

  • @alpharussel653
    @alpharussel653 2 ปีที่แล้ว +1

    An entire computer science degree courses embedded in this amazing channel. Thank you. Not all heroes wear a cap.

  • @MimicalThought
    @MimicalThought 6 ปีที่แล้ว +1

    We are learning about Dijkstra's Shortest Path in my Data Communications course and this video explains the algorithm much more clearly than my professor had attempted to explain in our lecture video / notes. Thank you very much, in just 10 minutes I was able to understand something I was spending 30-60 minutes on. Well done!! :)

  • @abooth1707
    @abooth1707 4 ปีที่แล้ว +1

    Best explanation I've ever seen of this. Thank you so much!

  • @leox8888
    @leox8888 2 ปีที่แล้ว +4

    Really appreciate this video. As a network engineer, i have read many book about how SPF works but this one is the best. And i can also develop the code based on this video. One thing I was stuck for a while is when having the directed graph (shorted path), it is a bit tricky to print all the shortest path considering ecmp case.

  • @mikelanigan9601
    @mikelanigan9601 5 ปีที่แล้ว +11

    I must commend the quality and clarity of this video: it is by far the best video I've seen on TH-cam to date on the subject of explaining Dijkstra's Algorithm. There are so many other videos that do not deal with the problem of keep a record of the shortest route sufficiently systematically enough, in my opinion. This video is systematic, showing the use of a table to perform the algorithm very clearly. Instruction of this level is not accidental; my congratulations to those involved in its production and execution. You have done the domain of Computer Science the world of good. Keep up the great work!

  • @TourGuideFTW
    @TourGuideFTW 7 ปีที่แล้ว +5

    The way you explained the algorithm was just great, thanks a lot for making this video!

  • @aquilazyy1125
    @aquilazyy1125 3 ปีที่แล้ว +5

    This is very enlightening. I’ve come up with a similar algorithm myself that uses a simple width-first or depth-first search, but I’ve never thought of that we should first calculated the vertex with the least known distance! Thanks for sharing it.

    • @ComputerScienceLessons
      @ComputerScienceLessons  3 ปีที่แล้ว +2

      Don't thank me, thank this guy :)KD
      en.wikipedia.org/wiki/Edsger_W._Dijkstra

  • @nitesh4146
    @nitesh4146 2 ปีที่แล้ว

    This is the best video on Dijstra's Shortest path algorithm I have viewed on TH-cam. Kudos!

  • @Monochones87
    @Monochones87 2 ปีที่แล้ว +3

    Lovely, this has been the clearest explanation I've seen so far for Dijkstra's algo. Seriously, thank you so much!

  • @ietskaag552
    @ietskaag552 4 ปีที่แล้ว +3

    Seriously, I've been looking at so many pseudocodes and incomprehensible python scripts without any clear explanation on how the algorithm actually works. I salute you. This has helped me so much. I can't thank you enough.

  • @ulfinawakjira1977
    @ulfinawakjira1977 3 ปีที่แล้ว

    This is by far the best video I've seen on this subject it made implementation very easy and the explanation is the best I've ever seen so thank you very much!

  • @supernenechi
    @supernenechi 3 ปีที่แล้ว +3

    You explained this so incredibly clearly! It's really not that hard at all! Thank you so much!

  • @Aca99100
    @Aca99100 4 ปีที่แล้ว +2

    I have never seen a video with such clear and step-by-step explanations. Good job here!

  • @ammarulhassan5851
    @ammarulhassan5851 3 ปีที่แล้ว +2

    After spending lots of time on other videos and stuff finally, I have understood "Dijkstra’s" Thanks to this LEGEND.

  • @sanseverything900
    @sanseverything900 2 ปีที่แล้ว +3

    Thank you for including the psuedo-code at the end. Really helped me get an idea of how I should structure my own code!

  • @5he1tied
    @5he1tied 5 ปีที่แล้ว +3

    This is the fourth video I had to watch. Only one that explains clearly, thanks.

  • @andresnieves9018
    @andresnieves9018 6 ปีที่แล้ว

    If you can't explain it simply, you don't understand it well enough. Beautifully done. Thank you!

  • @JaffarBrar
    @JaffarBrar 4 ปีที่แล้ว +7

    Crying in disbelief 😭😭. Finally some clear explanation. Thank youuuuu

  • @ThewOrldIssqUare
    @ThewOrldIssqUare 3 ปีที่แล้ว +2

    Thanks for this! As others have said, this is one of the clearest explanations on youtube!

  • @Moggery
    @Moggery ปีที่แล้ว +5

    Fantastically clear and concise. Makes my revision an absolute dream, I can’t thank you enough. 10/10

    • @ComputerScienceLessons
      @ComputerScienceLessons  ปีที่แล้ว

      Thank you. Delighted to help :)KD

    • @arniie5288
      @arniie5288 4 หลายเดือนก่อน

      Where have I seen that pic before?

  • @lawrencedennison-hall9642
    @lawrencedennison-hall9642 4 ปีที่แล้ว +8

    Such a clear and coherent explanation. Watched the Craig n Dave video on this previously but this is such a clearer explanation. Understand this now cheers!

    • @ComputerScienceLessons
      @ComputerScienceLessons  4 ปีที่แล้ว +2

      Glad you found it useful. There is nevertheless some good stuff on Craig n Dave's channel :)KD

  • @babakbekhradmanesh871
    @babakbekhradmanesh871 2 ปีที่แล้ว +2

    Thanks for your extraordinary explanation. This is literally one of the simplest explanations of an algorithm I have ever watched on TH-cam.

  • @smith1923
    @smith1923 5 หลายเดือนก่อน +1

    This is by far the best video I've seen on this algorithm. It is clear and doesn't skip any steps.

  • @selvalooks
    @selvalooks 5 ปีที่แล้ว +2

    i used to think this "Dijkstra’s Shortest Path Algorithm" is not for me to understand :) , now i can do it even getting from sleep after watching this video , thanks a ton !!!

  • @javadsabbagh8939
    @javadsabbagh8939 6 ปีที่แล้ว +4

    Thank you, Kevin. Very understandable and clear.

  • @KevinIaMmE94
    @KevinIaMmE94 3 ปีที่แล้ว +2

    I had to watch this video two times in order to grasp the concept. Thank you!!

    • @ComputerScienceLessons
      @ComputerScienceLessons  3 ปีที่แล้ว +1

      You are very welcome. I get my students to check their understanding by working through the algorithm with a different graph. :)KD

  • @hgjghjkhify
    @hgjghjkhify ปีที่แล้ว +2

    Appreciate this video. Watched a number of others about Dijkstra's Algorithm and couldn't understand HOW and at what stage another path is evaluated. It wasn't until I saw the graph and how we can track the changes that it somehow brought the entire algorithm into crystal clear focus. Thanks!

  • @theobserver4794
    @theobserver4794 4 ปีที่แล้ว +1

    two hours of a boring lecture vs 10mins cool explanation. thanks mate

  • @GavinLon
    @GavinLon 5 ปีที่แล้ว +4

    This is a great video. You have provided a very simple but clear explanation.

  • @amskumar
    @amskumar 5 ปีที่แล้ว +3

    Best video on Dijkstra I've seen so far. Thanks for doing it with so much clarity.

  • @nehascorpion
    @nehascorpion 2 ปีที่แล้ว

    Very well explained! Best video so far on this algorithm. Thanks a ton.

  • @BrendonWilliams
    @BrendonWilliams 7 ปีที่แล้ว +4

    Best explanation I could find. Thanks.

  • @dawnjinx4962
    @dawnjinx4962 3 ปีที่แล้ว +2

    I FINALLY UNDERSTAND THANK YOU SO MUCH!!!!
    This was the most concise and easy to follow video I've managed to find on this algorithm

    • @ComputerScienceLessons
      @ComputerScienceLessons  3 ปีที่แล้ว +1

      You are most welcome. I usually ask my students to check their understanding by working through it with a different graph. :)KD

  • @sabeen7794
    @sabeen7794 7 ปีที่แล้ว

    great video ... you really have the spirit of a teacher ... thanks for making this one.

  • @mdotub71
    @mdotub71 7 ปีที่แล้ว

    Excellent graphical and verbal explanation, very simple and coherent. Thanks for your video.

  • @michellelopez5264
    @michellelopez5264 5 ปีที่แล้ว

    mannnn, i've been trying to find the missing link with this stuff and your video finally shined some light on the subject!

  • @Jack-hd3ov
    @Jack-hd3ov 4 ปีที่แล้ว +1

    After watching about 5 videos on this algorithm, yours has made it crystal clear. Thank you.

    • @ComputerScienceLessons
      @ComputerScienceLessons  4 ปีที่แล้ว +1

      You're very welcome. :)KD

    • @Jack-hd3ov
      @Jack-hd3ov 4 ปีที่แล้ว

      @@ComputerScienceLessons Your A* explanation is also the best I found

  • @_elguet5787
    @_elguet5787 3 ปีที่แล้ว

    thank you I was really struggling implementing this algorithm in real coordinates, i realized coordinates are like grid/trees if you zoom it, and i could apply your ideas and explanation to find the shortest path available in a set of xyz 'real' coordinates! awesome.

  • @alejandrobonilla3201
    @alejandrobonilla3201 5 ปีที่แล้ว +1

    You are the best on explaining... Thanks a lot!

  • @user-lh2cq7yy6b
    @user-lh2cq7yy6b ปีที่แล้ว

    Man this content mind-blowing clear and simple explained, great work

  • @q1chen
    @q1chen 2 ปีที่แล้ว

    This 10mins video >>> 45mins video from my lecturer. LEGEND🙏

  • @DentrifixoRam88
    @DentrifixoRam88 6 ปีที่แล้ว

    Hi from Argentina. After watching 4 other videos I can say this is the best explained solution steps I've found so far. Thanks!!

  • @Satharus
    @Satharus 4 ปีที่แล้ว +2

    This is the single best and most simple explanation of Dijkstra's algorithm. It saved me multiple times.
    Thank you so much.

  • @drowmik
    @drowmik 4 ปีที่แล้ว +2

    I'm a programming lover man who have no computer science degree. I have seen many videos but this is the best and easiest way to explain the algo... Thanks a lot.. want more

  • @dimensionalblade2778
    @dimensionalblade2778 3 ปีที่แล้ว +2

    Damn such a nice tutorial. Also you're making stuffs for VB, you're like the dream channel I've been searching.

  • @nathanriches9547
    @nathanriches9547 2 ปีที่แล้ว

    Thanks James May. This was a great episode of Top Gear

  • @binoyskumar
    @binoyskumar 6 ปีที่แล้ว +1

    Perfect!
    keep it coming. Well explained

  • @ricp
    @ricp ปีที่แล้ว +1

    This explanation is by far the Best I've seen.. This is crystal clear , thank you very much!

  • @canmalatyaloglu8690
    @canmalatyaloglu8690 4 ปีที่แล้ว +3

    The fact that this explanation of Dijkstra's is way more easily understandable and to-the-point than the one Computerphile has is astounding. Slides ftw

    • @ComputerScienceLessons
      @ComputerScienceLessons  4 ปีที่แล้ว +1

      You're too kind. Thanks you. :)KD

    • @canmalatyaloglu8690
      @canmalatyaloglu8690 4 ปีที่แล้ว

      @@ComputerScienceLessons I thank you, recently passed my discrete maths exam :)

  • @GANDHIXtv
    @GANDHIXtv 9 หลายเดือนก่อน

    Best video on Dijkstra's by a considerable margin. Subbed.

  • @whiningmachine
    @whiningmachine 2 ปีที่แล้ว

    Fantastic explanation. Indeed, it's the best, clearest, simplest, and most useful resource by far that I've found after hours of searching. Thanks for making it!

  • @sneakintomybirdcage1344
    @sneakintomybirdcage1344 4 ปีที่แล้ว +2

    Thank you for making this video! Great explanation!

  • @alvaro1728
    @alvaro1728 5 ปีที่แล้ว +1

    Thank you for this brilliant explanation!

  • @ddddchannel837
    @ddddchannel837 3 ปีที่แล้ว +1

    Extremely clear and well thought out video. Thanks for uploading!

  • @Funnybone_FB
    @Funnybone_FB 2 ปีที่แล้ว +1

    Brilliant. Very well-done and clear explanation. Thank you for this!

  • @young-julee7899
    @young-julee7899 6 ปีที่แล้ว +420

    D E A D

  • @vinferothas
    @vinferothas 2 ปีที่แล้ว +1

    I had closed the tab after watching video. Just remembered and came back to give a like. Great video

  • @ice_cube918
    @ice_cube918 2 ปีที่แล้ว +1

    This is the best explanation of Dijkstra's algorithm I have seen!! I especially like the last summary part.

  • @forestpfeiffer1370
    @forestpfeiffer1370 3 ปีที่แล้ว +3

    Finally, an example that makes sense, wonderful job!

  • @KamalMettananda
    @KamalMettananda 3 ปีที่แล้ว +1

    This explains it perfectly. Thank you so much.

  • @kexiuliu6692
    @kexiuliu6692 4 ปีที่แล้ว +4

    Really good show of the algorithm. thanks a lot.

  • @rickyc1991
    @rickyc1991 4 ปีที่แล้ว +2

    Thanks to your clear explanations, I won't be visiting this video again.
    Maybe just once more before the finals.

  • @shayanmj2006
    @shayanmj2006 5 ปีที่แล้ว +3

    Amazing, thanks for making a clear explained video

  • @rabiakhan7338
    @rabiakhan7338 2 ปีที่แล้ว +1

    I've watched a lot of videos on this algorithm and let me tell you if you're watching this you are at the right place..
    and thank you so much Sir!

  • @danielm7755
    @danielm7755 3 ปีที่แล้ว +2

    You've just earned yourself a new subscription champ! Great video! I love it!

  • @chrise202
    @chrise202 4 ปีที่แล้ว +1

    You know this is the best illustration and guideline for implementing it on youtube.

  • @miller5565
    @miller5565 3 ปีที่แล้ว +2

    I couldn’t have asked for a clearer video, thank you sir.

  • @RubainG
    @RubainG 7 ปีที่แล้ว

    Awesome video ! This made me clear how to simplify and program the Seam algorithm!

  • @eduardbenedic9844
    @eduardbenedic9844 ปีที่แล้ว

    This is just phenomenal

  • @m_t_t_
    @m_t_t_ 2 ปีที่แล้ว +2

    Thanks for actually including the way to find the shortest path between the start node and a certain node, alot of tutorials leave that out