Solvequill Blog · coding · 3 dk okuma · 9 görüntülenme
İç içe iki döngü her zaman n² müdür?
Yayın tarihi:
Soru
Aşağıdaki iç içe döngü toplam kaç kez çalışır? Sonucu n cinsinden kapalı biçimde yazınız ve karmaşıklığını belirtiniz.
Önce neyi fark etmeli
İçteki döngünün sınırı sabit değil, dıştaki değişkene bağlı. Bu yüzden 'n çarpı n' demek yanlış olur; her i değeri için içteki döngünün kaç kez döndüğünü ayrı ayrı yazıp toplamak gerekir.
Adım adım çözüm
İncelenen kod:
1toplam = 02for i in range(n):3 for j in range(i, n):4 toplam += 1için içteki döngü n kez, için n-1 kez, için n-2 kez döner. En sonda için yalnızca 1 kez döner. Toplam:
Bu, ilk n doğal sayının toplamıdır ve kapalı biçimi bilinir:
için sayıyla kontrol . İç içe iki tam döngü olsaydı 10 000 olurdu, yani yaklaşık yarısı:
Büyük n'de baskın terim /2'dir. Sabit çarpan -O'da düşer:
Cevap
Karmaşıklık yine O() ama gerçek çalışma sayısı tam döngünün yarısı. -O sabit çarpanı gizler; pratikte iki kat fark eder ve ölçtüğünde bunu görürsün.
Bu soruda en sık yapılan hata
İzlemeyi mi tercih edersin? Yukarıdaki ders her satırı tek tek anlatıyor.
Kendi sorunu açıklamalı videoya dönüştür
Soruyu yaz veya fotoğrafını yükle; Solvequill çözümü adım adım anlatan bir video üretsin.
Solvequill'i aç