Der psuedocode Algorithmus p zu finden ist:ist die asymptotische Zeit Komplexität dieses Algorithmus O (log n)?
peakreturn(H)
for p=1 to m //m is the length of H
if H[p-1] ≤ H[p] and H[p] ≥ H[p+1] then return p
return nil // only returns this if there is no peak
Lassen Sie uns sagen, dass ich ein Array H [1 bis m] haben von int-Werte, wobei "p" das Element Spitze ist, wenn:
H[p] ≥ H[p+1] if p = 1,
H[p-1] ≤ A[p] ≥ H[p+1] if 1 < p < m,
H[p] ≥ H[p-1] if p = m.
Grundsätzlich , H [p] ist der Peak, wenn er größer oder gleich seinen Nachbarelementen ist.
Es wird angenommen, dass das Array H um 1 Element am Anfang und am Ende größer ist, das Array ist H [0 bis m + 1], wobei H [0] = H [m + 1] = -infinity. Daher sind H [0] und H [m + 1] Sentinels. Dann ist ein Element p mit 1 ≤ p ≤ n ein Peak, wenn H [p-1] ≤ H [p] ≥ H [p + 1].
Ich denke, die asymptotische Zeit Komplexität ist O (log n), aber ich bin mir nicht sicher. Bitte helfen Sie, wenn Sie können, vielen Dank.
danke für die Erklärung, die Sinn macht –