2016-05-25 40 views
-1

所以我有下一個任務:找到最小和第二最小的方式(可以是相同的)在圖中的價值,因爲我使用Dijkstra的alghoritm。第一個最小的一切都好(只是使用alghoritm),但我有第二個最小的問題。試圖找到另一種方式,基於第一個最小的方式,最小的差異,但這並不總是工作,因爲第二個最小的方式可以不同於第一。有沒有找到第二種最低限度的方法?Dijkstra的alghoritm第二最小路

+3

我們這裏不做任務。 SO是編碼問題的問答網站。請告訴我們你到目前爲止所嘗試的。也請看[我如何問一個好問題?](http://stackoverflow.com/help/how-to-ask)。 –

+0

代碼:http://pastebin.com/4vkGKX4Y.problem行\t 45.它只找到一個對應於每個Verticle的值,但我需要兩個。嘗試使用if()來修復它,但那不起作用。嘗試改變minditude功能,但有時它的工作,有時不工作(當最小圖形像1-3-5-8,而5和8不相鄰時,工作不正常) –

+1

你可以試試https://en.wikipedia。組織/維基/ Yen's_algorithm – x1Mike7x

回答

3

假設您將距離存儲在表示與節點x的距離的distance[x]的陣列中,可以將陣列切換到matrix。因此,對於每個節點x,您將有一個存儲在distance[x]中的值列表。從現在起,使用所有這些值來計算到與x相鄰的所有節點的距離。一切完成後,您可以選擇目標節點的線路並從那裏選擇第二個最小值。