" Mersin'in tek resmi eğitim kurumu "

ALGORİTMA KURSU

ALGORİTMA EĞİTİMİ


Algoritma Nedir?


Algoritmayı kısaca bir problemin çözümünde izlenecek yol olarak tanımlayabiliriz. Genelde bilgisayar biliminde ve matematikte tanımlanan, belli bir başlangıcı ve sonu olan çözüm yöntemidir.

Algoritmanın en önemli özelliklerinden birisi sonlu olmasıdır. Yani bir algoritma hangi şartta ve hangi girdide olursa olsun mutlaka sonlanacaktır. Sonsuza kadar çalışan bir koda algoritma denilemez.


Algoritma Neden Gereklidir?


Algoritma bir uygulamanın, oyunun veya bir web sayfasının çalışması için gereklidir. Ama burada asıl olay verimli algoritma nedir ve faydası nelerdir.


Öncelikle herhangi bir algoritmada verim iki niceliğe bağlıdır. Birincisi algoritmanın zaman karmaşıklığı (Time Complexity) ikincisi ise hafıza karmaşıklığı (Memory Complexity). Şimdi bu iki kavramdan kısaca bahsedelim.


Zaman Karmaşıklığı:


En basit tanımıyla bir algoritmanın N boyutundaki girdiyi kaç saniyede çözdüğünü N cinsinden gösteren bir karmaşıklık birimi. Pek basit bir tanım olmadı sanırım ama biraz daha açıklayınca anlayacağınızdan eminim.

İçinde on binlerce sayının bulunduğu bir veri düşünelim amacımız bu sayıları küçükten büyüğe doğru sıralamak olsun. Bu sıralama işlemini ne kadar kısa sürede tamamlarsak algoritmamız o kadar başarılıdır ve zaman karmaşıklığı o kadar düşüktür. Yazılım dillerinde zamanı etkileyen en temel faktör yapılan işlem sayısıdır. Normal bir bilgisayar 1 saniyede 200 000 000 (200 milyon) işlem yapabilir. İşlem derken kastettiğim basit matematik işlemleri, değişkenlere veri atama işlemleri gibi örnekler verilebilir. Yani verimli algoritma yazarken amacımız olabildiğince az işlem yapmak olacaktır.


Hafıza Karmaşıklığı:


Bu, zaman karmaşıklığından daha kolay bir kavramdır. Temel olarak algoritmanın çalıştığı bilgisayardan ödünç aldığımız hafıza miktarıdır. Aldığımız hafıza miktarı ne kadar az ise bu algoritma o kadar az maliyetlidir. Bu da bu algoritmayı daha verimli kılar.

Yukarıda da bahsettiğimiz gibi bize asıl lazım olan algoritma değil verimli algoritmadır. Çünkü gelişen web ve mobil yazılım teknolojisinde artık yazılım yazmayı bilen kişi sayısı çok fazladır. Piyasada sizi bunlardan ayıracak, farkınızı ortaya koyacak faktör verimli algoritma yazabilme yeteneğidir.


Ders İçeriği;

  • Algoritma Kavramı
  • Algoritma Temel Öğeleri
  • Algoritma Türleri
  • Algoritma Yazımı
  • Sıralı İşlem Algoritması
  • Koşul İşlem Algoritması
  • Algoritmaları Kodlama
  • Temel Algoritma Üzerine Örnekler
  • Arama ve Sıralama Algoritmaları