C 語言Pagerank兩種實現

2022-04-19 12:12:21 字數 1018 閱讀 8552

最近正在學習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 相較於其他高階語言來講,能夠方便的進行記憶體管理和操作,是其優勢也是其劣勢,運用得當將使得你編寫的程式效能大大提公升,使用不當也可能給你帶來無盡的麻煩。記憶體池就是其中的重要技術手段之一,下面重點看看常見的兩種記憶體池技術。此種記憶體池使用廣泛,實現相對簡單,基本能夠滿足大部分時候的需求,使用模...