卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

java 網(wǎng)站 prim算法講解?

prim算法講解?Prim算法是一種常見(jiàn)的最小生成樹(shù)算法。prim算法的核心思想是從已知的擴(kuò)散中求最小值。它的實(shí)現(xiàn)類似于Dijkstra算法,但與Dijkstra算法略有不同。Dijkstra是尋找單

prim算法講解?

Prim算法是一種常見(jiàn)的最小生成樹(shù)算法。prim算法的核心思想是從已知的擴(kuò)散中求最小值。它的實(shí)現(xiàn)類似于Dijkstra算法,但與Dijkstra算法略有不同。Dijkstra是尋找單個(gè)源的最短路徑。需要更新每個(gè)點(diǎn)的距離。Prim甚至不需要更新距離。直接找到已知點(diǎn)的最近邊并將其添加到最小值

prim函數(shù)?

Prim函數(shù)

Prim算法是以節(jié)點(diǎn)作為最小生成樹(shù)的起點(diǎn),然后找到相應(yīng)的最小邊來(lái)實(shí)現(xiàn)的。它可以設(shè)計(jì)為兩個(gè)參數(shù),一個(gè)參數(shù)是圖G,另一個(gè)參數(shù)是通過(guò)函數(shù)得到的最小生成樹(shù)節(jié)點(diǎn)數(shù)據(jù)和對(duì)應(yīng)節(jié)點(diǎn)邊的權(quán)值數(shù)據(jù)。Prim算法:Prim算法將所有頂點(diǎn)分為A和B兩部分,A是目標(biāo)集。該算法可視為一個(gè)連續(xù)地將B中的頂點(diǎn)轉(zhuǎn)移到一個(gè)集合的過(guò)程,更新并排序B中每個(gè)頂點(diǎn)與樹(shù)之間的最短距離。根據(jù)貪心思想,將無(wú)環(huán)最短路徑的頂點(diǎn)從B移到a,Prim算法是在加權(quán)連通圖中尋找最小生成樹(shù),即權(quán)值最小且連通到所有節(jié)點(diǎn)的樹(shù)。重點(diǎn)放在樹(shù)上,樹(shù)沒(méi)有環(huán)。

Prim算法是這樣做的:

首先將一個(gè)節(jié)點(diǎn)作為最小生成樹(shù)的初始節(jié)點(diǎn),然后迭代求出最小生成樹(shù)中每個(gè)節(jié)點(diǎn)的最小權(quán)邊,并將其加入到最小生成樹(shù)中。如果連接后生成循環(huán),請(qǐng)?zhí)^(guò)此邊并選擇下一個(gè)節(jié)點(diǎn)。當(dāng)所有節(jié)點(diǎn)都加入到最小生成樹(shù)中時(shí),就可以找到連通圖中的最小生成樹(shù)。

2、Kruskal算法:

kruska算法將多個(gè)頂點(diǎn)分成N個(gè)部分。該算法可以看作是一個(gè)連續(xù)合并n個(gè)部分的過(guò)程。在此過(guò)程中,根據(jù)權(quán)值對(duì)多條邊進(jìn)行排序,然后根據(jù)貪婪思想對(duì)權(quán)值最短且無(wú)循環(huán)的頂點(diǎn)進(jìn)行合并。

Kruskal算法和prim算法的區(qū)別在于,Kruskal需要將所有權(quán)重邊從小到大排序,然后才能找到最小的生成樹(shù)節(jié)點(diǎn)。排序后的加權(quán)邊依次添加到最小生成樹(shù)中。如果添加時(shí)生成循環(huán),將跳過(guò)此邊并添加下一條邊。當(dāng)所有節(jié)點(diǎn)都加入到最小生成樹(shù)中時(shí),就會(huì)找到最小生成樹(shù)。

毫無(wú)疑問(wèn),Kruskal算法比prim算法在效率上更快,因?yàn)镵ruskal只需要對(duì)加權(quán)邊進(jìn)行一次排序,而prim算法需要對(duì)加權(quán)邊進(jìn)行多次排序。盡管prim算法所涉及的加權(quán)邊可能不能覆蓋連通圖中的所有邊,但隨著排序算法效率的提高,Kruskal算法與prim算法的區(qū)別將更加明顯。