De ce contează?
Esti arbitru la un concurs si ai in fata doi concurenti, Ana si Bogdan. Cineva
te intreaba doar atat: „Ana trebuie sa stea inaintea lui Bogdan in clasament?".
Tu raspunzi simplu, da sau nu, dupa regula concursului — cine are punctaj mai
mare e primul. Daca stii sa raspunzi pentru orice pereche de concurenti, poti
ordona toata sala. Exact asta ii ceri tu lui sort: o regula care compara doi.
Intuiția
sort știe să aranjeze, dar nu știe după ce criteriu vrei tu. În mod implicit
ordonează crescător. Ca să-i schimbi regula, îi dai o funcție cmp(a, b) care
răspunde la o singură întrebare: trebuie a să stea înaintea lui b? Întorci
true dacă da. sort te întreabă asta pentru fel de fel de perechi și, din toate
răspunsurile tale, construiește ordinea finală.