標號法:適用於有向無環圖求最短路徑。
步驟:
1,給圖中每壹點編號;
2.從起點開始,如果當前點與前壹點有壹條邊相連,則記錄前壹點的標號;
3.如果當前點與前壹點沒有邊連接,則重新標記當前點;
4.重復步驟2和3,直到遍歷完所有點。
Dijstra算法:適用於尋找圖中壹個節點到所有其他節點的最短路徑。
步驟:
1.將起點添加到已訪問的集合中;
2.對於每個在起點沒有被訪問過的鄰居節點,分別計算到這些鄰居節點的最短路徑;
3.如果這些鄰居節點中存在任何被訪問的節點,則將這些鄰居節點添加到被訪問的集合中;
4.重復步驟2和3,直到遍歷完所有節點。
Berman-Ford算法:適用於尋找圖中所有節點之間的最短路徑。
步驟:
1.將起點添加到已訪問的集合中;
2.對於每個在起點沒有被訪問過的鄰居節點,計算到這些鄰居節點的最短路徑;
3.如果已經訪問了這些相鄰節點中的任何壹個,則更新這些相鄰節點的最短路徑;
4.重復步驟2和3,直到遍歷完所有節點。
弗洛伊德-瓦沙爾算法:適用於尋找圖中所有節點之間的最短路徑。
步驟:
1.將起點添加到已訪問的集合中;
2.對於每個在起點沒有被訪問過的鄰居節點,計算到這些鄰居節點的最短路徑;
3.如果已經訪問了這些相鄰節點中的任何壹個,則更新這些相鄰節點的最短路徑;
4.重復步驟2和3,直到遍歷完所有節點。
這些解題技巧不僅適用於奧數題,也適用於計算機科學中常用的算法。掌握這些技巧有助於解決實際問題,提高算法的效率和程序的正確性。