Merhaba bugün sizlere algoritmalardan bahsedeceğim. Algoritmaları günlük yaşantımızda bir şekilde kullanıyoruz fakat bunun farkında değiliz.
Örneğin elimizde bir problem var ve bunu çözmek istediğimizde en kolay, en basit çözümü bulmak için düşünürüz. İstediğimiz gibi bir sonuç almamızı sağlayan çözüm o problemi çözen, en kolay, en basit algoritmadır.
Gündelik yaşantımızda algoritmaları kullanırız demiştim. Örneğin bir yerden bir yere gitmek, yemek pişirmek, çay yapmak, alışveriş yapmak bunların hepsini yaparken algoritma kullanırız. Algoritma aslında biz programlama dili veya doğrudan yazılım ile ilgili değilir. Aslında algoritma herhangi bir probleme karşı bulunmuş optimum çözümün adımlarıdır.
Algoritma denince aklımıza ilk olarak ünlü matematikçi El-Harizmi gelir. Harezmi’nin geliştirdiği bu sistemi telaffuz edemeyen Batılılar, Harezmi’nin çalışmalarına Latince “algorismus” dediler.
Harezminin en çok ses getiren “Kitab-Ül Muhtasar Fi Hesab El-Cebr Ve’l Mukabele” isimli çalışması “Liber Algebre et Almochabolae Mahmed Moysi Algaurizmi” adıyla 12. yy’da Latinceye çevrildi ve bu sayede Batı Dünyası, cebir ile tanışmış oldu.
Harezmi bu kitapta; toplama, çıkarma, ikiye bölme, bir sayının iki katını bulma, denklem çözümü gibi cebirsel işlemleri açıklayarak bugünkü algoritmanın temelini attı.
Bugün batı dünyası tarafından da “cebirin atası” olarak sayılan Harezmi sayesinde, özellikle 18.yy’dan sonra matematik ve programlama oldukça büyük bir ivme kazandı.
Peki teknik olarak algoritma nedir? Algoritma; Belirli bir problemi çözmek için basit, başlangıcı ve sonu olan, optimum çözümü veren adımların kümesidir.
Algoritmaları genel olarak akış diyagramı ile ifade ederiz. Akış diyagramı (flow chart), bir algoritmanın adımlarının mantıksal sırasını, adımların birbiri ile bağlantısını, bir işlemden diğerine nasıl gidileceğini belirten kontrol mekanizmalarını, özel bazı şekil ve sembollerle anlatan bir ifade biçimidir. Aşağıda bu semboller görülmektedir:
Şimdi örnek olarak bir çay demleme algoritmasını yapalım.
- Başla
- Su al
- Suyu ısıt
- Su kaynayınca demliğe suyu koy
- Çay içmeye hazırsa bitir.
Adım adım yazdığımız algoritma adımlarını biraz daha detaylandırarak akış diyagramı şeklinde ifade edelim.
İyi algoritmalar tembel ve çalışmayı sevmeyen insanlardan çıkar.