00
Zaman karmaşıklığı sabit algoritma (constant time algorithm) ne demektir?

Bir algoritmanın çalışma süresini veren bağıntı t gibi sabit bir değer ise zaman karmaşıklığı sabit denir ve O(1) ile gösterilir.

Tanım
Bir algoritmanın çalışma süresi girdilerden (input) bağımsız ise ya da girdi almıyorsa sabit zaman karmaşıklığına sahiptir, denir.

Gösterim
Zaman karmaşıklığı sabit olan bir algoritmanın zaman karmaşıklığı T(n) = O(1) şeklinde gösterilir. Burada T, büyük O notasyonu ile gösterilmiştir.
 
 t sabit bir sayı olmak üzere:
T(n) = O(t) ise
T(n) = O(1) olarak ifade edilir.

Örnek
Verilen bir dizinin herhangi bir elemanına ulaşmak için gerekli süre, dizinin boyutundan bağımsızdır.
 
getElement(["a","b","c","d"], 1);
getElement(["a","b","c","d"], 3);

function getElement(array, i)
{
console.log(array[i]);
}

Örnek
Büyükten küçüğe doğru sıralanmış bir dizinin en büyük elemanına erişmek de sabit zaman gerektirir. Yani dizi ne kadar büyük olursa olsun dizinin ilk elemanına erişmek dizinin en büyük elemanına erişmektir.

Fakat sıralı olmayan bir dizinin en büyük elemanına ulaşmak, bütün elemanları taramayı gerektirdiği için karmaşıklığı lineer zamanlıdır ve O(n) ile gösterilir.

Örnek
Önemli bir husus da sabit zamanlı çalışmanın, algoritmanın çalışma süresinin üst sınırının (maksimum çalışma süresinin) girdilerin büyüklüğünden etkilenmemesi anlamına geldiğidir.

Çalışma süresinin (t süresi değişkenlik gösterse de) en fazla t kadar zaman almasıdır.
 
compareNumbers(3,5);
compareNumbers(5,3);
compareNumbers(3,3);

function compareNumbers(a,b)
{
    if(a>b) return "a > b";
    if(a<b) return "a < b";
    if(a==b) return "a = b";
}

İki sayının karşılaştırıldığı yukarıdaki örnekte girdi çiftleri ne olursa olsun bu algoritmanın zaman karmaşıklığı t gibi bir sabit değerle yani O(1) ile ifade edilir.
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