圖的兩種搜索算法,深度優(yōu)先搜素和廣度優(yōu)先搜索县匠。這兩種算法主要是針對(duì)無(wú)權(quán)圖的搜索算法唇牧。針對(duì)有權(quán)圖,也就是圖中的每條邊都有一個(gè)權(quán)重聚唐,該如何計(jì)算兩點(diǎn)之間的最短路徑?最短路徑算法(Shortest Path Algorithm)腔召。
一:算法解析
最優(yōu)問(wèn)題包含三個(gè):最短路線杆查,最少用時(shí),最少紅綠燈臀蛛。
1亲桦,解訣軟件開(kāi)發(fā)中的實(shí)際問(wèn)題崖蜜,最重要的一點(diǎn)就是建模,也就是將復(fù)雜的場(chǎng)景抽象成具體的數(shù)據(jù)結(jié)構(gòu)客峭。
2豫领,圖的表達(dá)能力強(qiáng),可以將求解的最短路徑問(wèn)題轉(zhuǎn)化為:在一個(gè)有向有權(quán)圖中舔琅,求兩個(gè)頂點(diǎn)間的最短路徑等恐。
3,要解決這個(gè)問(wèn)題备蚓,有個(gè)非常經(jīng)典的算法课蔬,最短路徑算法,更準(zhǔn)確的叫:?jiǎn)卧醋疃搪窂剿惴ǎㄒ粋€(gè)頂點(diǎn)到一個(gè)頂點(diǎn))郊尝。提到最短路徑算法二跋,最出名的莫過(guò)于DijKstra算法。
4流昏,Dijkstra算法的時(shí)間復(fù)雜度:
O(E*log V)扎即,E表示邊的個(gè)數(shù),V表示元素個(gè)數(shù)不會(huì)超過(guò)頂點(diǎn)的個(gè)數(shù)
5,Dijkstra最短路徑算法况凉,實(shí)際上最短路徑算法還有很多谚鄙,比如Bellford算法,F(xiàn)loyd算法等茎刚。