for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
cout << "+" << endl;

yukarıdaki loop'un complexity'si için o(n^2) demek doğru mudur, yoksa illa o(m*n) diye belirtmek mi lazımdır? kaynak göstererek cevaplarsanız sevinirim.

edit: cevap o(m*n) kesinlikle, onaylandı.

 

n^2 demek mantıksız bence. m*n diye hatırlıyorum.
kaynak: ders notu

EK: m*n yazmışız notlarda. tolga hocadayken.

jedilance

çiğdem hoca'nın geçen dönemki notlarında n^2 diyordu da ondan dedim. :)

edit: bir de logaritmik artış oldu mu tabanına bakmaksınız log(n) diyoruz nihayetinde.. o yüzden loop sınırı m de olsa, n de olsa bunların ikisini birden n diye göstermek çok da mantıksız gelmiyor bana.

jack of hearts

kucuk o mu buyuk O mu yoksa omegami. omega ve buyuk O OLUR KUCUK o OLMAZ.

'Let f(x) and g(x) be two functions defined on some subset of the real numbers. One writes f(x) = O(g(x))' bu durumda m*n olur IKISIDE OLUR TANIMA GORE IKISDE FONKSIYONDUR

mazungu

upper bound.

jack of hearts

O(n^2) doğrudur. bu arada yazdığından iğrendim yukarıdaki loop complexity falan. döngünün karmaşıklığı çok zor bi tabir mi :)

herman hesse

"döngü (tamsayı i = 0; i < m; i++)
bastır << "+" << satırsonu;"

yazabildiğim gün complexity yerine karmaşıklık demeye başlarım. dersi ingilizce alıp terimleri ingilizce öğreniyorum. neden türkçe karşılık bulma zorunluluğum olsun ki iğrendirici olmamak için.. bu arada kaynak var mı?

jack of hearts

kaynak prof dr vasif nabiyev'in ders notları hocam.

herman hesse

kanıtlayabilmem için somut bir delil bulunmalı elimde yalnız.

jack of hearts
1

mobil görünümden çık