最近正在學習hadoop相關的知識,參考了很多材料,如下是c#的兩種實現。
目前對這個演算法只是知道了運算的過程和思路,理解的還不是太深刻,我看到論壇上很多朋友算的pr值超過1,總感覺是有問題,具體哪有問題反倒倒說不好了,請知曉的朋友幫忙分析下。
附件是兩種實現方式,感興趣的朋友可以自行下來看看,有不對的地方,歡迎批評指正。
這是第二種實現的**,我是通過判斷兩個矩陣的相差的範圍進而判斷是否退出迭代的。
c# 語言的實現,參考
輸出結果中的s是構建的原始矩陣
using system;
using system.collections.generic;
using system.linq;
using system.text;
namespace pagerank,,
};double last_q_vec = new double ;
bool canbreak = false;
int intercount = 1;
while (!canbreak)
;for (int row = 0; row < node_count; row++)
next_q_vec[row] = a * next_q_vec[row] + (1 - a) / node_count;
}canbreak = true;
for (int i = 0; i < last_q_vec.length; i++)
}if (!canbreak)
}intercount++;
}console.writeline("intercount:", intercount);
printarray(last_q_vec);
}public void printarray(double row)
", row[col]));
if (col == dimension - 1)
else
}console.writeline();}}
}複製**
C語言不定引數的兩種實現
1 使用以下三個函式可實現不定引數 includevoid va start va list ap,last type va arg va list,type void va end va list ap 1 va start 該函式用來初始化指標變數ap va list實際是void型別 之後處理...
棧的兩種C 實現
棧 stack 是限制插入和刪除只能在乙個位置上進行的表,該位置是表的末端,叫做棧的頂 top 它是後進先出 lifo 的。對棧的基本操作只有push 進棧 和pop 出棧 兩種,前者相當於插入,後者相當於刪除最後的元素。棧本質上是一種受限制的表,所以可以使用任何一種表的形式來實現它,最常用的是使用...
兩種記憶體池技術(C 實現)
c 相較於其他高階語言來講,能夠方便的進行記憶體管理和操作,是其優勢也是其劣勢,運用得當將使得你編寫的程式效能大大提公升,使用不當也可能給你帶來無盡的麻煩。記憶體池就是其中的重要技術手段之一,下面重點看看常見的兩種記憶體池技術。此種記憶體池使用廣泛,實現相對簡單,基本能夠滿足大部分時候的需求,使用模...