2011-07-21 17 views

cevap

14

Aslında o:

  • i loop O (N) zamanını tekrarlar, böylece i'nin değeri O (N) olur, böylece O (I) = O (N) diyebiliriz.
  • J döngüsü, O (I^2) = O (N^2) zamanını yineler (dış döngü olmadan tek başına ele alındığında).
  • k döngüsü, O (I * J) = 0 (N * N^2) = 0 (N^3) kez yinelemektedir.
  • l Döngü sadece 10 kez yineler, yani O (1).

Döngüler iç içe geçmiş olduğundan, bunları bir araya getirmek zorundayız (nedenini anlıyor musunuz?). Toplam O (N) * O (N^2) * O (N^3) = O'dur (N^6).

+0

Tamam, sonuç olarak her sonuç, bir döngü boyunca değil (@Pascal önerilen) bir çarpımla çarpılarak elde edilir. Birisi bunu onaylayabilir mi? – karlphillip

+2

Pascal, toplamı gerçekten yapmadı. N * n^2 * n^2 * n ile çarptı ve n^6 aldı. Bir toplam gibi görünebilir çünkü üsler bir araya toplanır ama bu sadece üslerin matematikte nasıl çalıştığıdır. –

+0

Bu upvotes onaylar = D –

-1

demek olur:

  • n birinci döngü için ikinci bir döngü n³ ait => Toplam için
  • n⁵ üçüncü çevrim => toplam n²
  • Yine bir başka n⁶ ait =>, toplam n-döngü
+0

Kim reddederse, lütfen nedenini açıklayın. – karlphillip

+4

Reddetmedim, ancak n'nin değerine bakılmaksızın sabit zamanda yürütüldüğünde en içteki döngüün nasıl O (n) olabileceğini göremiyorum. – antinome

+0

Evet, bu bana O (N^5) benziyor – bdares

1

Üçüncü döngü

iç döngü için ikinci halka n³ ilk çevrim n² için

N var (1)

toplam O (n⁶) O olduğu.

Üçüncü döngünün niçin nedeni, j'nin n²'ye ulaştığını ve n'ye ulaştığını, yani n * 'ye ulaştığından dolayıdır.

İlgili konular