Bölüm 1.1 · Simülasyon

Algoritma Karmaşıklığı Analizi

← Bölüm 1.1

Karmaşıklık

Girdi boyutları

Fonksiyonun süresini ölçmek için Başlat'a basın.

Her girdi boyutu için ölçülen ortalama çalışma süresi burada çizilecek.

Algoritma Karmaşıklığı Analizi

Bir JavaScript fonksiyonu seçin ya da düzenleyin, onu birkaç girdi boyutunda çalıştırın ve ölçülen çalışma sürelerini karşılaştırın.

Kullanım

  • Bir karmaşıklık sınıfı seçin (O(log n), O(n), O(n log n), O(n²), O(n³)). Düzenleyiciye bu sınıftan örnek bir myFunction(size) fonksiyonu gelir ve beş girdi boyutu uygun hazır değerlere ayarlanır (O(log n) dışında her boyut bir öncekinin iki katıdır).
  • Fonksiyonu ya da boyutları değiştirebilirsiniz. Kod, tek argümanı girdi boyutu olan myFunction adlı bir fonksiyon tanımlamalıdır.
  • Başlat'a basın. Sonucu atılan bir ısınma ölçümünden sonra her girdi boyutu için fonksiyon önce birkaç kez ısınma amacıyla çalıştırılır, ardından yaklaşık 40 ms boyunca tekrarlanır; grafik çağrı başına ortalama süreyi milisaniye cinsinden (tüm süreler 1 ms'nin altındaysa mikrosaniye cinsinden) gösterir.

Grafiği okuma

  • O(n) için n'yi iki katına çıkarmak süreyi yaklaşık iki katına, O(n²) için yaklaşık dört katına, O(n³) için yaklaşık sekiz katına çıkarmalıdır.
  • O(log n) için eğri çabucak yataylaşır: 10'dan 100.000'e çıkmak döngüye yalnızca birkaç yineleme ekler.
  • Gerçek ölçümler gürültülüdür: JIT derleyicisi, önbellekler, çöp toplama ve tarayıcının diğer işleri süreyi etkiler. Analizi birden çok kez çalıştırın ve tek tek noktalara değil, genel eğilime bakın.

Not

Seçilen kod tarayıcınızda yerel olarak çalıştırılır. Çok büyük girdiler ya da pahalı fonksiyonlar sayfanın tepkisini geçici olarak yavaşlatabilir.