Evet, Kavramları tanımakla başlayalım.
O Linear
Algoritma (Algorithms) : Bir problem için üretilen çözüm yolu.
Örneğin 1 den 100e kadar olan sayılar toplamı kaçtır?
Çözüm 1:
Çözüm 2 :
İlk kod daha hızlı çalışmış. Şimdi aynı kodları tekrardan çalıştırıyorum ve değerlere tekrar bakıyorum.
Wall time: 59 µs
Wall time: 54 µs
Wall time: 340 µs
Wall time: 416 µs
Demek ki bu yöntem karşılaştırmak için iyi bir yöntem değil. Çünkü her seferinde farklı sonuçlar verebilir, donanım açık uygulamalar vesaire. Her şey bu değere etki edebilir.
Peki nasıl karşılaştırma yapabiliriz? Yukarıda bir soruna 2 tane çözüm verdik ama hangisi daha etkili?
O Linear
Algoritma (Algorithms) : Bir problem için üretilen çözüm yolu.
Örneğin 1 den 100e kadar olan sayılar toplamı kaçtır?
Çözüm 1:
Kod:
def bul(n):
n = int(n)
sonuc = n*((n+1)/2)
return sonuc
>>>
5050.0
CPU times: user 0 ns, sys: 0 ns, total: 0 ns
Wall time: 85.8 µs
Çözüm 2 :
Kod:
def bul(n):
n = int(n)
ts = n-1+1
ort = (n+1)/2
return ts*ort
5050.0
CPU times: user 0 ns, sys: 0 ns, total: 0 ns
Wall time: 259 µs
İlk kod daha hızlı çalışmış. Şimdi aynı kodları tekrardan çalıştırıyorum ve değerlere tekrar bakıyorum.
Wall time: 59 µs
Wall time: 54 µs
Wall time: 340 µs
Wall time: 416 µs
Demek ki bu yöntem karşılaştırmak için iyi bir yöntem değil. Çünkü her seferinde farklı sonuçlar verebilir, donanım açık uygulamalar vesaire. Her şey bu değere etki edebilir.
Peki nasıl karşılaştırma yapabiliriz? Yukarıda bir soruna 2 tane çözüm verdik ama hangisi daha etkili?