Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
C#'ta Recursion: Base Case, Call Stack, StackOverflowException ve Iterative'e Çevirmek
StackOverflowException .NET'te yakalanamaz ve bütün process'i öldürür; 8 MB'lık ana thread'de boş bir method yaklaşık 130.650 kez kendini çağırabildi, catch bloğu hiç çalışmadı. Yazıda recursion'ın anatomisini, call stack frame'lerini, recursive kodu explicit Stack<T> ile iterative'e çevirmeyi, JSON MaxDepth (64) ve EnsureSufficientExecutionStack gibi derinlik savunmalarını xUnit testleri ve gerçek çıktılarla anlatıyoruz.
Backtracking: Permutation, Subset ve Sudoku ile Arama Ağacını Budamak
Backtracking, choose, explore ve unchoose adımlarıyla bütün seçenekleri sistemli dener; asıl gücü çözüme varamayacak dalları erken budamaktır: 8-Queens'te 19 milyon node yerine 2.057. C# ile yield return kullanan permutation, subset ve combination üreticileri, N-Queens, en kısıtlı hücreden başlayan bir Sudoku solver ve kurallı bir ürün konfigüratörü yazıyoruz.