Function MAX( n, x[] )
best := x1
for j := 2 to n do
if xj > best then best := xj
return best
How many times is the assignment "best := xj" executed?
Let An = the number of new maxima encountered.
Consider the case of n distinct numbers
in which all n! possible relative orderings are equally likely.
Hn ≤ 1 + ∫1n dx / x = 1 + ln n
Hn ≥ ∫0n dx / (x+1) = ln (n+1)
Hn = ln n + γ + &Theta(1/n), where γ = Euler's constant ≈ 0.577