Bütün yazdığımız çeşidləmələri dörd növ verilənlə müqayisə edib vəziyyətə görə seçim qaydalarını çıxaracağıq. Saniyə əvəzinə müqayisə sayını ölçürük: o, kompüterdən asılı deyil və hər dəfə eynidir. Çeşidləmələrin özləri əvvəlki dərslərdədir: bubble, insertion, merge, quick, heap, Timsort.
Niyə saymaq, ölçməmək
timeit ilə ölçülən saniyələr maşından, Python versiyasından və yükdən asılıdır, nəticələr isə hər dəfə dəyişir. Müqayisələrin sayı isə alqoritmin xassəsidir. Hər elementi __lt__ metodunda sayan Key sinfinə bükürük: < işlədən bütün çeşidləmələr eyni sayğacla ölçülür. Real vaxtı yenə də timeit ilə ayrıca yoxlayın.
import random, heapq
class Key:
count = 0
def __init__(self, v): self.v = v
def __lt__(self, other):
Key.count += 1
return self.v < other.v