nodejs 并查集

function UnionFind(row, col, idx){

var o = new Object();

o.array = new Array(row*col);

o.isRandom = new Array(row*col);

o.init = function(row, col, idx){

for (var i = 0; i < row*col; i++){

o.isRandom[i] = 0;

o.array[i] = i;

}

for (var i = 0; i < idx; i++){

var num = Math.round(Math.random()*row*col);

//console.log(num);

if (o.isRandom[num]) i--;

else {

o.isRandom[num] = 1;

if (num%row>0 && o.isRandom[num-1]) o.union(num, num-1);

if (num%row<row-1 &&?o.isRandom[num+1]) o.union(num, num+1);

if (num%row>0 &&?o.isRandom[num-row]) o.union(num, num-row);

if (num%row<col-1 &&?o.isRandom[num+row]) o.union(num, num+);

}

}

//console.log(uf.printArray(100,100));

};

o.root = function(i){

while (i != o.array[i]){

o.array[i] = o.array[o.array[i]];

i = o.array[i];

}

return i;

};

o.connected = function(p, q){

return o.root(p) == o.root(q);

};

o.union = function(p, q){

o.array[o.root(p)] = o.root(q);

};

o.percolation = function(row, col){

for (var i = 0; i < row; i++){

for (var j = 0; j < col; j++){

//console.log(o.printArray(20,20));

//console.log(o.connected(i, (row-1)*col+j));

if(o.connected(i, (row-1)*col+j)) return true;

}

}

return false;

};

o.printArray = function(row, col){

for (var i = 0; i < col; i++){

console.log(o.array.slice(i*row, (i+1)*row));

}

};

return o;

}

var uf = new UnionFind(100, 100, 1);

var j = 1;

//uf.init(100, 100, 1100);

//console.log(uf.printArray(100,100));

//uf.percolation(100, 100)

var sum = 0;

//console.log(uf.printArray(100,100));

for (var i = 0; i < 1000; i++){

var j = 1;

uf.init(100, 100, 1);

//console.log(uf.printArray(100, 100));

while(!uf.percolation(100, 100)){

uf.init(100, 100, j);

j = j+1;

}

sum += j;

console.log(j/10000);

}

console.log(sum/10000000);

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗(yàn)。 張土汪:刷leetcod...
    土汪閱讀 12,912評論 0 33
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile麗語閱讀 4,095評論 0 6
  • 分享一件你因?yàn)樘^樂觀導(dǎo)致失敗或者放棄!你從中學(xué)到對于樂觀最重要的一課是什么? 買車票。有一次準(zhǔn)備坐火車去北京,本...
    咖飛的白閱讀 286評論 0 0
  • 參加了100天寫作小組,一周寫兩篇文字,群里每個(gè)人都對文字具有掌控能力,也有在我看來已經(jīng)寫得很好了還在虛心請教的,...
    瀟瀟灑灑的韓瀟灑閱讀 226評論 0 0
  • 突然想起來,上海周邊應(yīng)該也有戶外俱樂部的吧,在百度上找到幾個(gè),游天涯戶外的“七尖穿越”不錯(cuò),40公里,輕重裝均可,...
    微憧閱讀 470評論 1 1

友情鏈接更多精彩內(nèi)容