27 Eylül 2016 Salı

Algoritma Nedir?

Algoritma:  Algoritma kelimesinin matematikte kullanılan "logaritma" kavramıyla bir ilgisi yoktur. Algoritma kelimesi, IX. yüzyıl ünlü Türk bilgini matematikçi "Ebu Cafer Muhammed bin Musa El - Harezmi"nin isminin kısaltılmasından türetilmiştir. "El - Harezmi" kelimesinden esinlenerek İngilizce'de "algorithm" denilmiştir.

Algoritma en geniş anlamıyla, verilerden hareketle istenen sonucun nasıl alınacağını gösteren bir uygulama metodudur.
Algoritma; çözüm yolu aranan problemin herhangi bir adımında ne gibi işlemler yapılacağının tıpkı bir yemek tarifinde olduğu gibi yazıya dökülmüş şeklidir. Algoritmada her adımda giriş veya çıkış bilgileri, bölme, çarpma, aktarma, test ve benzeri işlemler yer almalıdır. Belli bir sayıda adımdan sonra algoritma mutlaka son bulmalıdır. Algoritma anlatımda kullanılan cümlelerin kolay, basit ve benzer konular için de geçerli olmasına dikkat edilmelidir. Program geliştiricisi çözümü istenen probleme uygun algoritmayı kurabilmek için, çeşitli kaynaklardan faydalanabilir. Benzer programlar verimli bir kaynak olabilir. Gelişmiş ülkelerde, bilgisayar kitapları ve diğer süreli yayınlar, belirli problemlere ilişkin algoritma yayınlamaktadırlar. Algoritmayı paket program kütüphaneleri şeklinde bazı büyük pazarlardan da elde etmek mümkündür. Nihayet, çok fazla rafine olmuş bazı programlama dillerinde, program geliştirme aşamasında algoritmaya ihtiyaç duyulmaz. Zira, bu tür dillerde algoritma, programlama dilinin tanımı içerisinde yer almıştır.


19.yy da İranlı Musaoğlu Horzumlu Mehmet (Alharezmi adını Araplar takmıştır) problemlerin çözümü için genel kurallar oluşturdu. Algoritma Alharezmi'nin Latince okunuşudur.

Basit tanım: Belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.
Geniş tanım: Verilen herhangi bir sorunun çözümüne ulaşmak için uygulanması gerekli adımların hiç bir yoruma yer vermeksizin açık, düzenli ve sıralı bir şekilde söz ve yazı ile ifadesidir. Algoritmayı oluşturan adımlar özellikle basit ve açık olarak sıralandırılmalıdır.

Algoritmaya Dair


Algoritmanın etkin bir şekilde oluşturulması Program yazma adımından çok daha önemlidir.
Hazırlanan algoritmanın programlama diliyle yazılması işin basit kısmıdır.
Tasarladığınız algoritma iyi değilse, kullandığınız dilin hiçbir önemi yoktur (C, C++, C#, Java, Visual Basic vb.)
Bir sorunun çözümü için birbirinden farklı birden fazla sayıda algoritma hazırlanabilir. Bu da gösteriyor ki herhangi bir problemin çözümü için birbirinden farklı yüzlerce bilgisayar programı yazılabilir.

Algoritma Türüne Ait Örnekler


Arama algoritmaları
Bellek yönetimi algoritmaları
Bilgisayar grafiği algoritmaları
Evrimsel algoritmalar
Genetik algoritmalar
Kriptografik algoritmalar
Optimizasyon algoritmaları
Sıralama algoritmaları
Veri sıkıştırma algoritmalar
Veri madenciliği algoritmaları
İş zekası algoritmaları
Astronomi algoritmaları
Dinamik programlama algoritmaları
Sağlık bilimleri algoritmaları
Fizik algoritmaları
Veritabanı algoritmaları
İşletim sistemi algoritmaları