prim算法不是很理解啊 Prim算法,解释一步就好!

Prim\u7b97\u6cd5\uff0c\u6c42\u5927\u725b\u901a\u4fd7\u6613\u61c2\u5730\u89e3\u91ca\u4e0b\u4e3a\u4ec0\u4e48\u6210\u7acb\u3002\u3002\u3002

prim\u7b97\u6cd5\u5c31\u662f\u628a\u70b9\u5206\u6210\u4e24\u4e2a\u96c6\u5408\uff0c\u4e00\u4e2a\u96c6\u5408\u91cc\u9762\u5305\u542b\u5df2\u7ecf\u52a0\u5165\u751f\u6210\u6811\u7684\u70b9\uff0c\u53e6\u4e00\u4e2a\u5305\u542b\u672a\u52a0\u5165\u7684\uff0c\u7136\u540e\u4e0d\u65ad\u5728\u4e24\u4e2a\u96c6\u5408\u4e4b\u95f4\u627e\u6700\u77ed\u7684\u8fb9\uff0c\u76f4\u5230\u6240\u6709\u7684\u70b9\u90fd\u52a0\u5165\u5230\u751f\u6210\u6811\u4e2d\uff0c\u8fd9\u65f6\u5019\u5c31\u6784\u6210\u4e86\u6700\u5c0f\u751f\u6210\u6811\u3002

\u5230C\u65f6\u53ef\u4ee5\u5f97\u5230\u7684\u7ed3\u679c\u662f\uff1a\u52302\u7684\u6700\u77ed\u957f\u5ea6\u4e3a5\uff0c\u52305\u7684\u6700\u77ed\u957f\u5ea6\u4e3a6\uff0c\u6240\u4ee5\u9009\u6700\u5c0f\u7684\u90a3\u4e2a\u957f\u5ea6\u4e3a5\uff0c\u5373\u9009\u62e9\u4e0b\u4e00\u4e2a\u8fde\u63a5\u8282\u70b9\u4e3a2\uff0c\u5373\u5f97\u5230\u4e86D\u56fe

其实它就是一个贪心

不知道你学过dijkstra没有,这两个是很类似的(代码上也是,朴素实现好象就差1句)。
如果点A是未加入树中最近的那个点,那么我们贪心地加入A肯定是最优的!
假设B是任意一个未加入树中不是最近的点,而我们这次加入了B。
那么接下来可能有两种情况再加入A:
1、直接加入A,这跟我们直接加入A是一样的,但我们不能保证当时加入B是最优的。
2、用B更新边后加入A,但是A比B要离树近,所以之前加入A,再用A更新B然后加入B要比这种情况更优。
综上,我们每次加入A总是最优的!

所以prim是对的。

还是kruskal好写呀。。。

哪里不理解?私聊?

  • 鏅噷濮嗙畻娉鍜屽厠椴佹柉鍗″皵绠楁硶鍖哄埆
    绛旓細鎬荤殑鏉ヨ锛鏅噷濮嗙畻娉鍜屽厠椴佹柉鍗″皵绠楁硶閮芥槸鏈夋晥鐨勬眰瑙f渶灏忕敓鎴愭爲闂鐨勭畻娉曪紝鏍规嵁鍏蜂綋鎯呭喌閫夋嫨涓嶅悓鐨勭畻娉曞彲浠ユ彁楂樿绠楁晥鐜囥傛櫘閲屽绠楁硶鐨勫彂灞 鏅噷濮嗙畻娉曪紙Prim绠楁硶锛夛紝鍥捐涓殑涓绉嶇畻娉曪紝鍙湪鍔犳潈杩為氬浘閲屾悳绱㈡渶灏忕敓鎴愭爲銆傛剰鍗崇敱姝ょ畻娉曟悳绱㈠埌鐨勮竟瀛愰泦鎵鏋勬垚鐨勬爲涓紝涓嶄絾鍖呮嫭浜嗚繛閫氬浘閲岀殑鎵鏈夐《鐐癸紙鑻辫鏄...
  • Prim鍜孌ijkstra绠楁硶鐨勫尯鍒
    绛旓細涓涓彲浠ヨ鏄庝簩鑰呬笉绛変环鐨勪緥瀛愭槸鏈夊洓涓《鐐(v0, v1, v2, v3)鍜屽洓鏉¤竟涓旇竟鍊煎畾涔変负(v0, v1)=20, (v0, v2)=10, (v1, v3)=2, (v3, v2)=15鐨勫浘锛岀敤Prim绠楁硶寰楀埌鐨勬渶灏忕敓鎴愭爲涓璿0璺焩1鏄笉鐩存帴鐩歌繛鐨勶紝涔熷氨鏄湪鏈灏忕敓鎴愭爲涓璿0v1鐨勮窛绂绘槸v0->v2->v3->v1鐨勮窛绂绘槸27锛岃岀敤...
  • Prim瀹屽叏浠g爜
    绛旓細Prim绠楁硶瀹炵幇浠ヤ笅鏄竴涓狿rim绠楁硶鐨勭ず渚嬩唬鐮佺墖娈碉紝鐢ㄤ簬鎵惧埌鍥句腑鏈灏忕敓鎴愭爲鐨勮竟闆嗐傜▼搴忓畾涔変簡涓涓偦鎺ョ煩闃碉紙map锛夎〃绀哄浘鐨勮繛鎺ユ儏鍐碉紝浠ュ強涓浜涘彉閲忕敤浜庤緟鍔╄绠椼傜▼搴忓紑濮嬫椂锛屽彉閲弆鍒濆鍖栦负1锛岃〃绀鸿捣濮嬮《鐐癸紝闆嗗悎p鍜寁鍒嗗埆瀛樺偍宸查夋嫨鐨勯《鐐瑰拰鏈夋嫨鐨勯《鐐广傚浜1鍒6鐨勯《鐐癸紝鍒濆鏃秜鍖呭惈鎵鏈夐《鐐癸紝p鍖呭惈璧峰...
  • [鍥綸 鏈灏忕敓鎴愭爲-Prime绠楁硶鍜孠ruskal绠楁硶
    绛旓細鍥犳锛屽湪鏌愪簺鍦哄悎锛鏅噷濮嗙畻娉鍙堣绉颁负DJP绠楁硶銆佷簹灏斿凹鍏嬬畻娉曟垨鏅噷濮嗭紞浜氬皵灏煎厠绠楁硶銆4 .杈撳嚭锛氫娇鐢ㄩ泦鍚 V new 鍜 E new 鏉ユ弿杩版墍寰楀埌鐨勬渶灏忕敓鎴愭爲銆備笅闈㈠绠楁硶鐨勫浘渚嬫弿杩 鍙嶈瘉娉曪細鍋囪prim鐢熸垚鐨涓嶆槸鏈灏忕敓鎴愭爲 杩欓噷璁伴《鐐规暟v锛岃竟鏁癳 閭绘帴鐭╅樀:O(v 2 ) 閭绘帴琛:O(e * log 2 v)Kruska...
  • 杩澃鏂壒鎷夌畻娉曞拰prim绠楁硶
    绛旓細鐩殑涓嶅悓锛屾牳蹇冩濇兂涓嶅悓銆1銆佺洰鐨勪笉鍚岋細杩澃鏂壒鎷夌畻娉曚富瑕佽В鍐冲崟婧愭渶鐭矾寰勯棶棰橈紝鍗充粠鎸囧畾鐨勪竴涓妭鐐瑰紑濮嬶紝鎵惧嚭鍥句腑浠庤妭鐐瑰埌鎵鏈夊叾浠栬妭鐐圭殑鏈鐭矾寰勶紝鑰鏅噷濮嗙畻娉鍒欑敤浜庤В鍐虫渶灏忕敓鎴愭爲闂锛屽嵆鍦ㄨ繛閫氬浘涓夋嫨涓浜涜竟锛屼娇寰楄繖浜涜竟鏋勬垚鐨勫瓙鍥句粛鐒惰繛閫氾紝骞朵笖鎵鏈夎竟鐨勬潈閲嶄箣鍜屾渶灏忋2銆佹牳蹇冩濇兂涓嶅悓锛氳开鏉...
  • 鏅噷濮嗙畻娉鐨勭浉鍏充俊鎭
    绛旓細1锛夌畻娉曠殑鍩烘湰鎬濇兂锛氭櫘閲屽绠楁硶鐨勫熀鏈濇兂锛鏅噷濮嗙畻娉曟槸鍙︿竴绉嶆瀯閫犳渶灏忕敓鎴愭爲鐨勭畻娉曪紝瀹冩槸鎸夐愪釜灏嗛《鐐硅繛閫氱殑鏂瑰紡鏉ユ瀯閫犳渶灏忕敓鎴愭爲鐨勩備粠杩為氱綉缁淣 = { V, E }涓殑鏌愪竴椤剁偣u0鍑哄彂锛岄夋嫨涓庡畠鍏宠仈鐨勫叿鏈夋渶灏忔潈鍊肩殑杈(u0, v)锛屽皢鍏堕《鐐瑰姞鍏ュ埌鐢熸垚鏍戠殑椤剁偣闆嗗悎U涓備互鍚庢瘡涓姝ヤ粠涓涓《鐐瑰湪U涓紝...
  • prim绠楁硶鏄璐績绠楁硶鍚
    绛旓細鏄 prim绠楁硶鏅噷濮嗙畻娉(Prim绠楁硶)锛屽浘璁轰腑鐨勪竴绉嶇畻娉曪紝鍙湪鍔犳潈杩為氬浘閲屾悳绱㈡渶灏忕敓鎴愭爲銆傛剰鍗崇敱姝ょ畻娉曟悳绱㈠埌鐨勮竟瀛愰泦鎵鏋勬垚鐨勬爲涓紝涓嶄絾鍖呮嫭浜嗚繛閫氬浘閲岀殑鎵鏈夐《鐐(鑻辫锛歏ertex(graphtheory))锛屼笖鍏舵墍鏈夎竟鐨勬潈鍊间箣鍜屼害涓烘渶灏忋傝绠楁硶浜1930骞寸敱鎹峰厠鏁板瀹舵矁浼婃嵎璧蜂簹灏斿凹鍏(鑻辫锛歏ojt臎chJarn铆k)鍙戠幇锛...
  • 鏅噷濮嗙畻娉
    绛旓細浣犺鍏堟槑鐧prim绠楁硶鐨勫師鐞嗭紝鏄庣櫧鍘熺悊鍚庣湅涓嬮潰鐨勭▼搴忚鐐癸細1.绋嬪簭瀹炵幇鐨勬椂鍊欏皢鐐瑰垎鎴愪袱閮ㄥ垎锛屽姞鍏ラ泦鍚堢殑鍜屾病鏈夊姞鍏ラ泦鍚堢殑锛2.姣忔浠庢病鏈夊姞鍏ラ泦鍚堜腑鎵剧偣锛3.瀵规墍鏈夋病鏈夊姞鍏ュ埌闆嗗悎涓殑鐐逛腑锛屾壘涓涓竟鏉冩渶灏忕殑锛4.灏嗚竟鏉冩渶灏忕殑鐐瑰姞鍏ラ泦鍚堜腑锛屽苟涓斾慨鏀瑰拰鍔犲叆鐐圭浉杩炵殑娌℃湁鍔犲叆鐨勭偣鐨勬潈锛岄噸澶嶇2姝ワ紝...
  • 璇濊鏈灏忕敓鎴愭爲鐨prim绠楁硶鍜宬ursual绠楁硶鐨勫尯鍒
    绛旓細prim绠楁硶鏄涓棰楁渶灏忕敓鎴愭爲涓笉鏂姞鐐圭殑璐績绠楁硶锛屾敮鎸佸悜涓棰楁渶灏忕敓鎴愭爲涓姞鐐圭殑鎿嶄綔銆傝宬urscal绠楁硶鏄皢杈规帓搴忎互鍚庤椽蹇冨湴鍔犲叆锛屽苟鐢ㄥ苟鏌ラ泦缁存姢杩為氭с備袱涓畻娉曞疄鐜板鏉傚害閮戒负O(nlogn),涓鑸潵璇磌urscal绠楁硶鐨勫父鏁拌灏忎簬prim
  • 鏈灏忕敓鎴愭爲Prim
    绛旓細Prim绠楁硶鏄涓绉嶇敤浜庢眰瑙e浘涓渶灏忕敓鎴愭爲鐨勫父鐢ㄦ柟娉曪紝鍏剁洰鐨勬槸鍦ㄧ粰瀹氱殑鏃犲悜鍔犳潈鍥句腑鎵惧埌涓妫靛寘鍚墍鏈夐《鐐逛笖杈规潈鍜屾渶灏忕殑鏍戙備互涓嬫槸涓涓熀浜嶱rim绠楁硶鐨勪吉浠g爜瀹炵幇锛氶鍏堬紝璇诲叆涓涓弬鏁皃锛屼唬琛ㄥ浘涓竟鐨勬暟閲忋傛帴涓嬫潵锛屽畾涔変袱涓泦鍚坢鍜宯锛屽垎鍒〃绀哄凡閫夋嫨鐨勬爲鐨勯《鐐瑰拰鏈夋嫨鐨勯《鐐广傚垵濮嬪寲涓涓煩闃礱锛岀敤浜...
  • 扩展阅读:为什么prim算法适合稠密图 ... 如何用prim算最小的树 ... kruskal算法和prim算法 ... prim算法过程图解 ... prim算法求最小生成树图解 ... prim算法例题及答案 ... prim算法太难写出来了 ... 贪心算法求最小生成树 ... 最小生成树prim算法唯一吗 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网