Dijkstra 演算法是一個尋找最短路徑的演算法,可以對一張沒有負權邊的有向圖找出從原點到其他所有點的最短路徑距離
引入情境
假設位於台北市的你今天想從內湖高中騎車到捷運中山站附近吃拉麵,在每個路口都有幾條路任君挑選,你的 GPS 要如何找到最短路徑呢?
Google 地圖上建議的路線
其中一種方法就是列舉每條路,把每條路的距離都加起來,然後選其中一條加起來最小的路線。這種方法可以找到最短路徑,卻要花上許多時間去列舉,甚至也有可能列舉到一些不值得考慮的路線,比如說從內湖到花蓮再南迴騎回來。顯然地,有些選擇荒謬至極
因此我們會需要有效率的 Dijkstra 演算法來幫助我們解決這個問題