Solvequill Blog · coding · 7 dk okuma · 18 görüntülenme
Big-O, girdinin büyüdüğünü hayal edince anlam kazanır
Yayın tarihi:
-O bilgisayarında tek bir çalıştırmanın süresi değildir. Girdi büyüdükçe işin nasıl büyüdüğüdür.
Bu yazıyı hızlı bir özet gibi değil, çözüm sırasında karar vermeyi kolaylaştıran küçük bir çalışma notu gibi kullan. Önce fikri oku, sonra örneği kendin durdurup bir satır ilerletmeyi dene; en sonda kontrol listesini gerçek bir soruda uygula.
Ana fikir
Girdi iki katına çıkınca ne olur diye sor. İş iki katına mı çıkar, dört katına mı, yoksa neredeyse aynı mı kalır?
Buradaki önemli nokta yöntemi ezberlemek değil, yöntemi neyin çağırdığını fark etmektir. Soruda hangi ifade, şekil, birim, değişken veya kod davranışı sana bu yolu seçtirdi? Bunu adlandırabilirsen benzer soruda daha hızlı ve daha sakin ilerlersin.
Kısa örnek
neleman üzerinde tek döngü genelde doğrusal büyür; aynı liste üzerinde iç içe döngü çoğu zaman karesel büyür.
1for eleman in liste:2 isle(eleman)34for a in liste:5 for b in liste:6 karsilastir(a, b)Adım adım nasıl yaklaşılır?
- Verilenleri temizce yaz ve birimleri, sembolleri veya değişken adlarını düzelt.
- Sorunun istediği sonuca doğrudan gitmeden önce hangi ara bilginin gerektiğini belirle.
- Her satırdan sonra küçük bir kontrol yap: birimler tutuyor mu, işaret doğru mu, kodda girinti ve kapsam doğru mu?
- Cevabı bulunca ilk soruya geri dön ve sonucun gerçekten sorulan şeye cevap verip vermediğini kontrol et.
Çözerken kontrol et
- Girdi boyutunu adlandır.
- Kod satırlarını değil, tekrar eden işi say.
- Sabitleri ancak ana büyümeyi anladıktan sonra yok say.
Sık yapılan hata
Performans konuşması,ndeğerinin neyi temsil ettiğini söylediğinde netleşir.
Bu hatayı yakalamanın en pratik yolu, çözüm bittikten sonra sadece sonucu değil, karar noktalarını da kontrol etmektir. 'Neden bu formül?', 'Neden bu bileşen?', 'Neden bu döngü koşulu?' gibi sorular cevabın doğruluğunu içerik açısından da güçlendirir.
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ç