【发布时间】:2021-06-12 11:28:43
【问题描述】:
int find_peak (int n, int A []) {
int left, right, lmid, rmid;
left = 0;
right = n - 1;
while (left + 3 <= right) {
lmid = (2 * left + right) / 3;
rmid = (left + 2 * right) / 3;
if (A[lmid] <= A[rmid])
left = lmid;
else
right = rmid;
}
int x = left;
for (int i = left + 1; i <= right; i ++)
if (A[i] > A[x])
x = i;
return A[x];
}
我试图解决这个函数的 BigO 表示法,但我对此感到非常困惑。是 O(log n) 还是别的什么?我可以在脑海中解决它,但我不能正确地解决它。
【问题讨论】:
-
请正确缩进您的代码。这几乎是可读的。
标签: c time-complexity big-o complexity-theory