让我们有int[] A = new int[1000]
andint[] subA = new int [300]
这样subA \in A
(subA
是A
) 的子集。A \ subA
如何在 Java 中以最快的方式找到数组?给定数组A
和subA
排序。
编辑:对不起,忘了提到数组包含不同的元素,只是它们包含其他结构的索引,如矩阵行。
我正在考虑这个解决方案:
// supp is short for supplement
int[] supp = new int[A.length - subA.length];
int j = A[0], c = 0;
for (int i = 0; i < subA.lengh; i++) {
// elegantly can be: while (j < subA[i]) supp[c++] = j++;
while (j < subA[i]) {
supp[c] = j;
c++; j++;
}
j = subA[i] + 1;
}
目前正在测试这种方法。准备好答案后我会回来的。