İçeriğe atla
md ~/rehber/algoritmalar
Rehbere dön

3. adım

Algoritmalar / Algoritma Analizi

Problemi çözmenin en iyi yolunu bulmak ve bunun neden en iyi olduğunu göstermek. Sıralama, arama, graf algoritmaları ve dinamik programlama burada.

Önce bunları bilVeri YapılarıAyrık Matematik

  • Sıralama
  • İkili arama
  • Böl ve yönet
  • Açgözlü algoritmalar
  • Dinamik programlama
  • BFS ve DFS
  • En kısa yol

Neden önemli

Veri yapıları "veriyi nerede tutarım" sorusuysa, algoritmalar "onunla ne yaparım" sorusu. Navigasyondaki en kısa yol, arama motorundaki sıralama, oyunlardaki yapay zekâ hep bu dersin konuları. Teknik mülakatların büyük kısmı da buradan sorulur.

Bilmen gerekenler

  • Sıralama algoritmaları: ekleme, birleştirme (merge), hızlı (quick), heap sıralaması ve karşılaştırmaları.
  • İkili arama ve sıralı veride arama fikri.
  • Böl ve yönet; özyineli bağıntıları çözmek (master teoremi).
  • Açgözlü (greedy) algoritmalar ve ne zaman doğru sonuç verdikleri.
  • Dinamik programlama: alt problemleri saklayıp tekrar kullanmak.
  • Graf algoritmaları: BFS, DFS, Dijkstra, en küçük kapsayan ağaç.
  • P, NP ve "bu problemin hızlı çözümü yok" fikri.

Alıştırma ve proje

  • Her algoritmayı önce kâğıtta küçük bir örnekle elle çalıştır, sonra kodla.
  • Dinamik programlamayı soru çözerek öğren; LeetCode ve Codeforces'ta konu etiketine göre çalış.
  • Kendi yazdığın sıralamaları büyük verilerle zamanla ve Big-O tahminini doğrula.

Sık yapılan hatalar

  • Çözümü ezberlemek; mülakatta soru biraz değişince işe yaramaz.
  • Dinamik programlamada önce özyineli çözümü yazmadan tabloya atlamak.
  • Doğruluğu düşünmeden sadece hıza odaklanmak.

Bu dersi en çok kullanan meslekler