回覆列表
  • 1 # 共情師

    迪克斯拉特演算法是Python演算法集的其中一種演算法。

    定義:迪克斯特拉演算法(Dijkstra Algorithm)是考慮了邊權(weight)問題的求最短路徑的演算法。用它來解決求有向無環圖的最短路徑問題比較合適,而當圖中出現環時,可能會導致演算法無法正常執行。

    總的來說,迪克斯特拉演算法的思想就是找到每個節點離起點的最短路徑,層層逼近終點,直至找出起點到終點的最短路徑。

    作用:Dijkstra演算法是典型最短路演算法,用於計算一個節點到其他所有節點的最短路徑。主要特點是以起始點為中心向外層層擴充套件,直到擴充套件到終點為止。Dijkstra演算法能得出最短路徑的最優解,但由於它遍歷計算的節點很多,所以效率低。

    迪克斯拉特演算法算是Python入門的演算法集其中之一吧,缺點是效率低。

    比起迪克斯拉特演算法,我更喜歡貪婪演算法,或者叫貪心演算法。不同於其他演算法,它是求得近似解來解決問題。

    官方對貪婪演算法的定義是:在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,他所做出的是在某種意義上的區域性最優解

    貪心演算法不是對所有問題都能得到整體最優解,關鍵是貪心策略的選擇,選擇的貪心策略必須具備無後效性,即某個狀態以前的過程不會影響以後的狀態,只與當前狀態有關。

    熟練的運用貪婪演算法,雖然不能完美的解決問題,但是勝在節省演算法執行時間。在很多情況下貪婪演算法還能獲取更多的價值。

  • 中秋節和大豐收的關聯?
  • 離婚訴訟怎麼答辯,離婚訴訟開庭時要注意什麼?