擅长:python、mysql、java
<p>在您的例子中,如果数据存储方式正确,使用模拟随机行走迭代方法应该可以很好地工作。当与节点数相比只有很少的边时(就像你的例子),我不认为矩阵方法是一个好的选择,因为它是一个非常稀疏的矩阵,但实际上这种方法意味着你要检查从I到j的任何I和j节点的存在性(顺便说一下,我不确定这些乘法运算的运行时间零分,真的需要。)</p>
<p>如果您的数据存储方式是,对于每个节点对象,您都有其传出链接的目的地列表,则随机漫游模拟方法将相当快速。忽略阻尼因子,这就是您在随机行走模拟的每次迭代中实际要做的事情:</p>
<pre><code>for node in nodes:
for destination in node.destinations:
destination.pageRank += node.pageRank/len(destinations)
</code></pre>
<p>每次迭代的时间复杂度为O(n*k),其中n=1m,k=10。这听起来不错,如果我没有遗漏什么。在</p>