Anonymous user
Longest increasing subsequence: Difference between revisions
→Patience sorting
Line 466:
infix 4 ≡
(≡)
(≡) = (==)
(∘) = (.)
lis ∷ Ord α ⇒ [α] → [α]
Line 474 ⟶ 477:
pileTops ← newSTArray (min 1 lxs , lxs) []
i ← foldM (stack pileTops) 0 xs
readArray pileTops i >>= return
stack ∷ (Integral ι, Ord ε, Ix ι, MArray α [ε] μ)
Line 480 ⟶ 483:
stack piles i x = do
j ← bsearch piles x i
writeArray piles j
else readArray piles (j-1)
return $ if j ≡ i+1 then i+1 else i
|