00
Algoritmaların çalışma süresi fonksiyonu ve Büyük O notasyonu değeri nasıl bulunur?

Çalışma süresi fonksiyonu, algoritmanın işlevini yerine getirmek için gerekli zamanı veren bağıntıdır. Büyük O notasyonu, bu fonksiyonu sadeleştirmek için kullanılır.

Çalışma süresi fonksiyonu
Çalışma süresi (zamanı) ya da koşma süresi (running time) fonksiyonu bir algoritmanın girdileri (n, input) ile toplam çalışma süresi arasındaki ilişkiyi gösteren fonksiyondur. Genellikle T(n) ile gösterilir.

T(n), algoritmanın işlevini yerine getirmek için gerekli döngü (loop), işlem (dört işlem, atama gibi) gibi adımlardan ne kadar kullanıldığını gösteren bağıntıdır.

T(n) nasıl bulunur?
Zaman karmaşıklığı olarak da bilinen T(n) fonskiyonu elde edilirken göz önüne alınacak adımlar şunlardır:
  • işlemler
  • ardışık işlemler
  • if/else bloğu
  • döngüler
  • iç içe döngüler
Algoritmayı oluşturan adımlarda yer alan dört işlem, mantıksal karşılaştırma ve atama gibi temel işlemlerin sabit zaman aldığı varsayılır. Ardışık işlemlerin zamanları birbirne ekledir.

Bir if/else bloğunda if ya da else bloklarından hangisinin zamanı büyükse o tercih edilir. Çünkü Büyük O notasyonu ile en kötü senaryo analizi yapılmaktadır.

Algoritmada bir döngü varsa bu kısmın çalıma süresi döngü içindeki işlemlerin döngü sayısı (iterasyon) ile çapımıyla bulunur. Bu kısım lineer zaman alır.

İç içe döngülerde analiz en içteki döngüden dışa doğru yapılır ve çalışma süresi bütün döngülerin iterasyon sayılarının (boyutlarının) çarpımı kadar olur.

Sadeleştirme
Algoritmanın büyüme fonksiyonu elde edildikten sonra, Büyük O notasyonunu elde etmek için birtakım kurallar uygulanır. Esasında bu işlem bir sadeleştirme eylemidir.

Kural 1
Düşük dereceli terimler, katsayılar ve sabitler ihmal edilir. Aşağıdaki örnekte katsayıların (2, 5) ve sabitlerin (3) ve düşük dereceli terimlerin (n2, n) ihmal edildiğine dikkat ediniz.
 
O(2n4+n2+5n+3) = O(n4)

Kural 2
Algoritmanın birden fazla büyüme fonksiyonu varsa birleştirilebilir.
 
O(f(n)) + O(g(n)) = O(f(n) + g(n))

O(x3) + O(x2+3) = O(x3+x2+3) = O(x3)
Bu alana not ekleyebilirsiniz.
Başka bir sorunuz mu var?
Yorumlar (0)

Henüz yorum yapılmamış.

İlgili Konu
Algoritma Analizi
İlgili Kayıtlar
İlginizi Çekebilir