行に配置された与えられn
た整数は、1 つのピークを見つけることができる効率的なアルゴリズムを示しています。ピークとは、その隣の 2 つの数字 (または行末にある場合は、その隣の 1 つの数字) 以上の数字です。
質問する
550 次
1 に答える
3
O(log n)
アルゴリズムが存在します。私たちは分割統治法を使用します。
find_peak(lo,hi):
mid = (lo+hi)/2
if A[mid] >= A[mid-1], A[mid+1] return mid
if A[mid] < A[mid-1]
return find_peak(lo,mid-1) // a peak must exists in A[1..mid-1]
if A[mid] < A[mid+1]
return find_peak(mid+1,hi) // a peak must exists in A[mid+1..hi]
于 2012-10-12T21:35:45.177 に答える