日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

javascript实现kruskal算法

發布時間:2024/4/14 javascript 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 javascript实现kruskal算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
<script>//圖的構建function vnode() {this.visited = 0;this.vertex = 0;this.arcs = new Array();}function G() {this.adjlist = new Array();}//0 1 2 3 4 5var a = [[0, 7, 8, 0, 0, 9], //0[0, 0, 0, 2, 5, 0], //1[0, 0, 0, 5, 0, 6], //2[0, 0, 0, 0, 9, 0], //3[0, 0, 0, 0, 0, 7], //4[0, 0, 0, 0, 0, 0]]; //5function creategraph() {var g = new G();for (i = 0; i < 6; i++) {g.adjlist[i] = new vnode();g.adjlist[i].vertex = i;g.adjlist[i].arcs = (function () {var b = new Array();for (j = 0; j < 6; j++)if (a[i][j]) { b.push(new Number(j)); b[b.length - 1].weight = a[i][j]; }return b;})();}return g;}var s = new Array();var g = creategraph();var arcs = new Array();for (i = 0; i < 6; i++) {for (j = 0; j < g.adjlist[i].arcs.length; j++) {var b = {};b.a = i;b.b = g.adjlist[i].arcs[j];b.c = g.adjlist[i].arcs[j].weight;arcs.push(b);}}arcs.sort(function (a, b) {return a.c - b.c;})function kruskal() {for (i = 0; i < 6; i++) {s.push([i]);s[i].e = new Array();}var flag = 0;loop: for (i = 0; i < arcs.length; i++) {//判斷一條邊是否可以被選取if (flag) { i = 0; flag = 0; continue; }for (j = 0; j < s.length; j++) {//檢查選取的邊的兩個端點是否同時落在以構建的樹中for (k = 0; k < s[j].length; k++) {if (s[j][k] == arcs[i].a) {//如果一個端點落在一棵樹上,繼續檢查另一個端點是否落在同一棵樹上for (l = 0; l < s[j].length; l++) {if (s[j][l] == arcs[i].b) {//如果兩端點都落在同一棵樹上,則繼續取下一條邊進行驗證continue loop;}if (l == (s[j].length - 1)) {//不落在同一棵樹上,則把一個端點所在的樹和另一個端點所在的樹合并for (m = 0; m < s.length; m++) {for (n = 0; n < s[m].length; n++) {if (s[m][n] == arcs[i].b) {//找到另一端點所在的樹,進行合并alert(arcs[i].b + "---" + arcs[i].a);for (v = 0; v < s[m].length; v++) {s[j].push(s[m][v]);}flag = 1;s.splice(m, 1);continue loop;}}}}}}}}}alert(s.length);}kruskal(); </script>

?

轉載于:https://www.cnblogs.com/sky-view/p/3252193.html

總結

以上是生活随笔為你收集整理的javascript实现kruskal算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。