select(S, r):
Given rank r, set S, which key in S has this rank?
Pseudocode
if T == nil:
deal with special case
r' = size(T.left)+1
if r == r':
return T.key
if r < r':
return select(T.left, r)
else:
return select(T.right, r=r')
where
size(T) = 0 if T == nil else T.size