我正在尝试解决这个问题。我正在制作 Math.ceil(Math.sqrt(arrSize)) 的矢量大小。我使用了以下方法 - 用于构建 sqrt 向量
我正在取平方根块并在块中找到最小的索引并将它们存储在 vect 数组中。
如何从 Sqrt(n) 提高更新查询的复杂性。
static void update(int[] arr, int[] vect, int index, int elem) {
arr[index] = elem;
int len = vect.length;
int inIndex = ((index / len) * len);
int finalIndex = inIndex+len;
int min = Integer.MAX_VALUE;
int in = -1;
for(int i = inIndex; i < finalIndex && i < arr.length; ++i) {
if(arr[i] < min) {
min = arr[i];
in = i;
}
}
vect[index/len] = in;
}
使用本教程-:http ://www.geeksforgeeks.org/sqrt-square-root-decomposition-technique-set-1-introduction/