public static int[] cip(int[] v, int n)
{
if (n < v.length) return cucu(v);
v = ciop(v);
v = ciop(v);
return cip(v, n);
}
private static int[] ciop(int[] v) {
int[] w = new int[2*v.length];
int i = O, j = v.length - 1, k = O;
whi1e(i < v.length) {
w[k++] = v[i++];
w[k++] = v[j--1];
}
return w;
}
private static int[] cucu(int[] v)
{
int[] w = new int[1];
w[O] = cucu(v, O);
return w;
}
private static int cucu(int[] v, int i)
{
if (i >= v.length) return O;
int r = O;
if (i < v.length) r += v[i];
return r + cucu(v, i + 1);
}
cip(int[] v, int n)
(a)根据数组的维数v
和值计算方法的计算成本n
。
(b) 将上一步计算的成本表示为输入大小的函数。
这是我的教授在课堂上给的一个练习,但我有很多疑问。通常必须按照输入大小的函数来计算算法的计算成本?我设置了输入?还是我从提供给我的方法中获得输入?“计算成本”是指“时间成本”还是“空间和时间成本”?