Yazılımda algoritma nasıl geliştirilir?

Codewars diye bir site var onun da kata adını verdiği bir sistemi var. Orada seviyelere göre sorular var o soruları çözmeye uğraşmakla algoritma geliştirilebilir.

Sorunu önce kafada veya kağıt üstünde çözümledikten sonra koda dökülebilir ardından neler eksik neler fazla denilerek algoritma da düzenlemeler yapılabilir.

Yazılan dile hakim olmak iyi bir algoritma kurmanın başlangıcı olabilir.

Algoritma örnekleri incelenerek taklit edilebilir.
Kiminin while döngüsü ile yaptığı bazı işleri, siz for döngüsüyle deneyebilirsiniz veya hiç döngü kurmadan yapmaya çalışabilirsiniz. Bu esnada gösterdiğiniz efor sizin algoritma geliştirmenizde pozitif bir etki yaratır diye düşünüyorum.
 
Son düzenleyen: Moderatör:
Oncelikle formal bilginin olmasi gerekiyor. Cozmeye calistigin problem nedir?
- Sort problemi mi?
- Search problemi mi?
- Set problemi mi?

Karsilasacagin problemlerin ezici cogunlugu bu 3 baslikta halledilir.

Number theory problemleri ( asal sayi, common divisor, prng vs ) isin spesifik algoritmalar var, bunlari zaten ogretirler.
Dynamic programming uygulayabilecegin problemler olabilir, onun da metotlari var.
Greedy algoritmalarla cozebilecegin nispeten basit problemler var.
Birden fazla cozum varsa ve mukemmel cozume ihtiyac yoksa heuristic algoritmalar gelistirilebilir.

Data-structure bilgisi de yeterli olmali. Onune gelen her collection icin Array/List kullanan adam algoritma gelistiremez.

Genel gecer bir formulu yok, once teorik bilgin olmali; sonra bu teorik bilgiyi pratige dokerek yetkinlestirmelisin kendini. Problemin dogasina, ihtiyaclara ve elindeki kaynaklara gore algoritma sekillenir. Dusuk RAM varsa baska algoritma kullanirsin, tekrarli listede farkli sort algoritmasi kullanirsin.
 

Technopat Haberler

Yeni konular

Yeni mesajlar

Geri
Yukarı