DSA View View ile Trapping Rain Water, Top K Frequent ve Selection Sort Algoritmalarını Adım Adım Görselleştirerek Öğrenin

İçindekiler
Kuru Algoritmaları Görselleştirme ile Anlaşılır Kılmak
Veri yapıları ve algoritmaları (DSA) yalnızca statik kod blokları üzerinden öğrenmeye çalışmak geliştiriciler için çoğu zaman zorlayıcıdır. Çünkü bir döngü çalışırken bellekte sürekli değişen değişken durumlarını zihinde canlandırmak ciddi bir bilişsel yük yaratır. Frontend mühendisi @nyaomaru tarafından geliştirilen açık kaynaklı DSA View View aracı, kodun arka planda tam olarak nasıl çalıştığını görselleştirerek bu öğrenme sürecini kolaylaştırıyor. Aracın sunduğu en önemli avantaj, döngü ortasında adımları geriye doğru sarabilmenize imkan tanıyan etkileşimli bir zaman çizelgesine (timeline) sahip olmasıdır.
Yazar, serinin önceki makalelerinde geliştiricilerin zihinsel modellerini güçlendiren şu dokuz temel problemi ele almıştı:
- Two Sum
- Binary Search
- Bubble Sort
- Valid Parentheses
- Reverse Linked List
- Maximum Depth of Binary Tree
- Number of Islands
- Invert Binary Tree
- Course Schedule
Problem Çözme Bakış Açısı Kazandıran Üç Yeni Algoritma
Bu çalışmada ise yazılım mülakatlarında ve optimizasyon süreçlerinde sıklıkla karşımıza çıkan üç yeni problem inceleniyor:
- Trapping Rain Water
- Top K Frequent Elements
- Selection Sort
Bu problemler, yazılım mühendisliğinde sıkça başvurulan üç temel algoritmik düşünme modelini kazandırır:
- Problemi iki taraftan daraltmak (Shrink a problem from both sides): Çift işaretçi (two pointers) tekniğiyle arama uzayını iki uçtan merkeze doğru küçültmek.
- Önce saymak, sonra frekansa göre düzenlemek (Count first, then organize by frequency): Hash haritaları ve kova sıralama (bucket sort) mantığıyla frekans analizi yapmak.
- Sıradaki değeri ardışık olarak seçmek (Repeatedly select the next value): Sıralama algoritmalarında her adımda en uygun elemanı belirleyip konumlandırmak.
Bu algoritmaların kod yapıları devasa olmasa da, döngü boyunca eşzamanlı değişen birden fazla durum değişkenini zihinde tutmak zordur. Kodun nihai halini doğrudan okumak yerine, yürütme anındaki durum değişimlerini adım adım izlemek kavramsal netlik sağlar.
Trapping Rain Water: Mantığın Somutlaştırılması
[0, 1, 0, 2, 1, 0, 1, 3] yükseklik dizisini duvarlar olarak modellediğimizde, gökyüzünden yağan yağmur suyunun bir kısmı kenarlardan taşarak akıp giderken, yüksek duvarlar arasında kalan kısmı hapsolur.
Bu problemde geliştiricilerin en çok zorlandığı nokta, belirli bir sütunun üzerinde birikebilecek su miktarının yalnızca o sütuna değil, dizinin diğer konumlarındaki sol ve sağ maksimum duvar yüksekliklerine bağlı olmasıdır. Dolayısıyla çözülmesi gereken asıl soru şudur: Tek bir konumun üzerinde tam olarak ne kadar su tutulabilir?
Yazılım Geliştirme ve Öğrenme Çıkarımları
- Zaman Çizelgesi ile Etkin Hata Ayıklama: Geriye dönük adımlama, değişken durumlarındaki sınır hatalarını (edge cases) görmeyi belirgin şekilde hızlandırır.
- Görsel Modelin Kod Kalitesine Etkisi: Durum değişimlerini grafiksel olarak kavramak, soyut algoritmaları temiz ve optimize koda dönüştürmeyi kolaylaştırır.
Bu konuyu daha derinlemesine öğrenmek ister misin?
Edumints'teki ücretsiz kursları incele ve bugün başla.
Kurslara Göz At →