在课程中,以下联合查找仅适用于数字: https://www.coursera.org/learn/introduction-to-algorithms/lecture/EcF3P/quick-find
public class QuickFindUF
{
private int[] id;
public QuickFindUF(int N)
{
id = new int[N];
for (int i = 0; i < N; i++)
id[i] = i;
}
public boolean connected(int p, int q)
{ return id[p] == id[q]; }
public void union(int p, int q)
{
int pid = id[p];
int qid = id[q];
for (int i = 0; i < id.length; i++)
if (id[i] == pid) id[i] = qid;
}
}
在幻灯片结束时,如何计算每秒10 ^ 9次操作以及其他10 ^ x个数字(包括10个)?所有数字都在下面的图像中:(文本也在下面复制)
粗略标准(暂时)。
实施例。快速查找的巨大问题。
谢谢!我希望有一天stackoverflow可以在没有理由的情况下阻止投票。或者,删除这些声誉(至少为所有人提供基本权限)。有些人盲目地保持低调(除非我们能看出原因)。恕我直言,这打破了开放交换的目的。看到我的另一个问题,它是在程序员交换,因为不适用于堆栈溢出,但仍然被投票。 https://softwareengineering.stackexchange.com/questions/333198/rotate-a-matrix-in-place-moving-elements-how-to-write-a-part-of-flow-logic-af
答案 0 :(得分:1)
这些数字是计算机处理速度(GHz)和存储器大小(G“字”,即整数或4GB)的数量级估计。
如果你有10亿英镑的内存,你需要大约1秒的时间才能看到它们,所以这40亿英寸的O(n)算法需要1秒。如果算法是O(n 2 ),则需要10次 18次操作,或10亿秒,大约等于31年。