【发布时间】:2021-11-19 01:15:51
【问题描述】:
您好,我需要应用与此类似的算法,但问题是我需要复杂度为 O(logn)。下面代码的复杂度据说是 O(logn),但据我了解,递归方法的增长顺序为 O(n)。所以问题是下面代码的增长顺序是什么。
public static int findPeak(int[] array, int start, int end) {
int index = start + (end - start) / 2;
if (index - 1 >= 0 && array[index] < array[index - 1]) {
return findPeak(array, start, index - 1);
} else if (index + 1 <= array.length - 1 && array[index] < array[index + 1]) {
return findPeak(array, index + 1, end);
} else {
return array[index];
}
}
【问题讨论】:
标签: java algorithm time-complexity divide-and-conquer