當(dāng)前位置:
首頁(yè) >
前端技术
> javascript
>内容正文
javascript
javascript实现kruskal算法
生活随笔
收集整理的這篇文章主要介紹了
javascript实现kruskal算法
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
<script>//圖的構(gòu)建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++) {//檢查選取的邊的兩個(gè)端點(diǎn)是否同時(shí)落在以構(gòu)建的樹中for (k = 0; k < s[j].length; k++) {if (s[j][k] == arcs[i].a) {//如果一個(gè)端點(diǎn)落在一棵樹上,繼續(xù)檢查另一個(gè)端點(diǎn)是否落在同一棵樹上for (l = 0; l < s[j].length; l++) {if (s[j][l] == arcs[i].b) {//如果兩端點(diǎn)都落在同一棵樹上,則繼續(xù)取下一條邊進(jìn)行驗(yàn)證continue loop;}if (l == (s[j].length - 1)) {//不落在同一棵樹上,則把一個(gè)端點(diǎn)所在的樹和另一個(gè)端點(diǎn)所在的樹合并for (m = 0; m < s.length; m++) {for (n = 0; n < s[m].length; n++) {if (s[m][n] == arcs[i].b) {//找到另一端點(diǎn)所在的樹,進(jìn)行合并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>
?
轉(zhuǎn)載于:https://www.cnblogs.com/sky-view/p/3252193.html
總結(jié)
以上是生活随笔為你收集整理的javascript实现kruskal算法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: XHTML学习笔记 Part2:核心元素
- 下一篇: 关于最短路的随笔