Əvvəlki mövzuda vaxtı ölçməyi öyrəndik. Lakin saniyələr maşından asılıdır. Bu mövzuda alqoritmləri maşından asılı olmayan şəkildə müqayisə etməyi öyrənirik.
Saniyələrin problemi
Ölçülmüş vaxt prosessordan, Python versiyasından, yükdən və keşdən asılıdır. Eyni kod noutbukda 2 saniyə, serverdə 0,5 saniyə çəkə bilər. Alqoritm isə eynidir. Bizə elementar əməliyyatların sayı lazımdır: giriş ölçüsü n-in funksiyası kimi.
Model
- Giriş ölçüsü
n: siyahının uzunluğu, sətirdəki simvol sayı, qrafın təpə və kənarlarının sayı. - Elementar əməliyyat: mənimsətmə, müqayisə, ədədi əməl, indekslə müraciət; hər biri bir addımdır.
f(n): alqoritmin addım sayı. Bizi onun böyümə xarakteri maraqlandırır.
İç-içə dövrlərdə addımlar vurulur:
def count_linear(n):
ops = 0
for _ in range(n):
ops += 1
return ops