Bu yüzden birkaç şeyi açıklığa kavuşturayım, büyük O gösterimi ile ilgileniyorsunuz - bu üst sınır anlamına geliyor . Başka bir deyişle, gerçekte yaptığınızdan daha fazla adım saymanız uygundur. Özellikle, algoritmayı şu şekilde değiştirebilirsiniz:
...
for (j = 0; j < n; j++)
...
İki iç içe döngüler, her döngü çalışır sahip Yani defa hangi bir verir üst bağlanmış aitnO (n2)
Tabii ki, üst sınır için iyi bir tahmin yapmak istersiniz. Bu nedenle, tamamlanması için bir alt sınır belirlemek istiyoruz. Bu, daha az adım saymanın iyi olduğu anlamına gelir. Bu yüzden değişikliği düşünün
for (i = n/2; i < n; i++)
for (j = 0; j < n/2; j++)
sum++;
Burada, döngü yinelemelerinin sadece bir kısmını gerçekleştiriyoruz. Yine iki iç içe döngümüz var, ama bu sefer döngü başına yinelememiz var, bu da en az 2/4 eklememiz olduğunu gösteriyor . Bu durumda bu asimptotik alt sınırı . Alt ve üst sınır çakıştığından, sıkı bir asimtotik bağ olduğunu bile söyleyebiliriz ve yazarız .n / 2n2/ 4Ω (n2)n2Θ (n2)
Daha fazlasını öğrenmek istiyorsanız, burayı okuyun .