Çözüldü Big O Notasyonu hesaplama nasıl yapılır?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Katılım
1 Ekim 2017
Mesajlar
1.638
Makaleler
4
Çözümler
13
Daha fazla  
Cinsiyet
Erkek
Merhaba, yarın veri yapıları sınavımız var ve hocamızın 2 hafta önce vermiş olduğu kodun Big-O notasyonunu hala bulamadık. Açıkçası ben log(logn) olduğunu düşünmüştüm lakin yanlış olduğunu söyledi hocamız. İlgili kod:

[CODE lang="cpp" title="Veri Yapıları"]for(int i =1; i<n;i=i*2)
{
for(int j=1; j<i; j = j*2)
{
cout << "hello";
}
} [/CODE]
 
Çözüm
@M.Sc Jelly Bean biz kodun notasyonunu O(log(n^2)) olarak veya O(n^2) olarak düşünüyoruz; sebebi ise n´ye verdiğimiz değerlerde iç kısımdaki for döngüsünün çalışmasına baktık ve (2 üzeri n) + 1 değerine geldiğinde çalışma miktarı bir artıyor.

Doğrudur. Sayıları grafik şeklinde çizdirdiğimde elde ettiğim eğri O( n^2 )'nin ta kendisi.

bigO.png
JavaScript:
function bigO(n) {
  let count = 0;
  for (let i = 1; i < n; i *= 2)
    for (let j = 1; j < i; j *= 2)
      count++;
  return count;
}

for (let i = 2; i < 100_000; i++) {
  console.count(bigO(i));
}

Bu şekilde count sayısının yakınsama eğrisinin değerlerini oluşturdum ve grafiğinin sqrt( n ) ile olmasa bile ona yakın bir eğri çizdiğini fark ettim.
 
@The Anorak karmaşıklık sıralamasında sqrt( n ) log( n )´den daha mı az karmaşık? Bize verilen sıralamada 1-log( n )- n- n log( n )-n kare-n küp- iki üzeri n ve son olarak n faktöriyel var.
@The Anorak biz kodun notasyonunu O(log(n^2)) olarak veya O(n^2) olarak düşünüyoruz; sebebi ise n´ye verdiğimiz değerlerde iç kısımdaki for döngüsünün çalışmasına baktık ve (2 üzeri n) + 1 değerine geldiğinde çalışma miktarı bir artıyor.
 
Son düzenleme:
@M.Sc Jelly Bean biz kodun notasyonunu O(log(n^2)) olarak veya O(n^2) olarak düşünüyoruz; sebebi ise n´ye verdiğimiz değerlerde iç kısımdaki for döngüsünün çalışmasına baktık ve (2 üzeri n) + 1 değerine geldiğinde çalışma miktarı bir artıyor.

Doğrudur. Sayıları grafik şeklinde çizdirdiğimde elde ettiğim eğri O( n^2 )'nin ta kendisi.

bigO.png
 
Çözüm

Technopat Haberler

Yeni konular

Geri
Yukarı