紙上談兵 最短路徑與貪婪

2021-06-26 09:01:04 字數 397 閱讀 1619

圖是由節點和連線節點的邊構成的。節點之間可以由路徑,即邊的序列。根據路徑,可以從一點到達另一點。在乙個複雜的圖中,圖中兩點可以存在許多路徑。最短路徑討論了乙個非常簡單的圖論問題,圖中從a點到b點 ,那條路徑耗費最短?

這個問題又異常複雜,因為網路的構成狀況可能很複雜。

乙個最簡單的思路,是找出所有可能的從a到b的路徑,再通過比較,來尋找最短路徑。然而,這並沒有將問題簡化多少。因為搜尋從a到b的路徑,這本身就是很複雜的事情。而我們在搜尋所有路徑的過程中,有許多路徑已經繞了很遠,完全沒有搜尋的必要。比如從上海到紐約的路線,完全沒有必要先從上海飛到南極,再從南極飛到紐約,儘管這一路徑也是一條可行的路徑。

所以,我們需要這樣乙個演算法:它可以搜尋路徑,並當已知路徑包括最短路徑時,即停止搜尋。我們先以無權網路為例,看乙個可行的最短路徑演算法。

紙上談兵 佇列 queue

佇列 queue 是乙個簡單而常見的資料結構。佇列也是有序的元素集合。佇列最大的特徵是first in,first out fifo,先進先出 即先進入佇列的元素,先被取出。這一點與棧 stack 形成有趣的對比。佇列在生活中很常見,排隊買票 排隊等車 先到的人先得到服務並離開佇列,後來的人加入到佇...

紙上談兵 佇列 queue

佇列 queue 是乙個簡單而常見的資料結構。佇列也是有序的元素集合。佇列最大的特徵是first in,first out fifo,先進先出 即先進入佇列的元素,先被取出。這一點與棧 stack 形成有趣的對比。佇列在生活中很常見,排隊買票 排隊等車 先到的人先得到服務並離開佇列,後來的人加入到佇...

紙上談兵 棧 stack

棧 stack 是簡單的資料結構,但在計算機中使用廣泛。它是有序的元素集合。棧最顯著的特徵是lifo last in,first out,後進先出 當我們往箱子裡存放一疊書時,先存放的書在箱子下面,我們必須將後存放的書取出來,才能看到和拿出早先存放的書。棧中的每個元素稱為乙個frame。而最上層元素...