私はいくつかの質問をしていますが、答えが提供されていないので、私の答えが正しいかどうか疑問に思っていました
a) a[i....j] が n 個の要素を持つ整数配列であり、x が整数である場合
int front, back;
while(i <= j) {
front = (i + j) / 3;
back = 2 * (i + j) / 3;
if(a[front] == x)
return front;
if (a[back] ==x)
return back;
if(x < a[front])
j = front - 1;
else if(x > a[back])
i = back+1;
else {
j = back-1;
i = front + 1;
}
}
私の答えは O(1) ですが、私は間違っていると感じています。
B)
public static void whatIs(int n) {
if (n > 0)
System.out.print(n+" "+whatIs(n/2)+" "+whatIs(n/2));
}
ans: 再帰が 2 回発生するため、log4n なのか logn なのかわかりません。