Algoritma,herhangi bir sorunun çözümü için izlenecek yol anlamına gelmektedir.9.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.
Algoritma işlenmemiş veriden belirli bir bilgi oluşturur. Dolayısıyla her algoritma için giriş verisi ve çıkış bilgisi kavramlarından söz etmek mümkündür. Herhangi bir giriş verisine karşılık çıkış bilgisi elde edilemiyorsa yazılan komutlar algoritma olarak tanımlanamaz. Bununla birlikte giriş verisi almayan komutlar dizisi bir sonuç elde edemeyeceğinden veya en iyi ihtimalle rastgele çıkış bilgileri oluşturacağından yine algoritma değildir. Bir algoritmayı oluşturan komutların aşağıda belirtilen kurallara uyması gereklidir. • Yazılan komutun tek bir anlama gelmesi ve herkes tarafından aynı şekilde anlaşılıyor olması gereklidir. Aksi taktirde işleyiş ve elde edilen sonuçlar değişeceği için yazılan algoritma olmayacaktır. Örneğin bir karekök bulma işlemi için her biri farklı yaklaşıklıkta sonuçlar verebilen farklı yöntemler vardır. Bu yöntemlerden hangisinin kullanılacağı belli değilse, komut dizisi bir algoritma olmayacaktır. • Yazılan komut uygulanabilir olmalıdır. Fiziksel olarak gerçekleştirilmesi mümkün olmayan bir eylem (güneşten ateş getirmek) uygulanabilir değildir. Aynı şekilde hesaplanması için bir yöntem olmayan denklemlerin çözümü de mümkün değildir; dolayısıyla uygulanabilirliği yoktur. • Her algoritmanın sonlanması, çalıştırılan komut sayısının sonsuz olmaması gereklidir.
Bir algoritma aşağıda sıralanan süreçlerden geçmektedir. • Tasarım (design) • Doğruluğunu ispat etme (validation) • Analiz edip özelliklerinin belirlenmesi (analysis) • Uygulama (implementation) • Test etme (test) Bu ders kapsamında analiz ve uygulama üzerinde durulacaktır Algoritma Analizi Algoritma analizi, algoritma belirlendikten sonra özelliklerinin incelenmesi aşamasıdır. Bu aşamada aşağıdaki soruların cevapları araştırılır.
Algoritmanın özellikleri neler? Özellikler incelenirken, algoritmanın hafızada ne kadar yer kapladığı ve ne kadar sürede tamamlandığı ele alınır. • Ne kadar iyi? Belirlenen özellikler algoritmanın ne kadar iyi olduğu sorusunun cevabıdır. • Diğer algoritmalarla nasıl karşılaştırılır? Mümkün olan diğer algoritmalarla karşılaştırma yapılır. Ancak bu aşamanın sonucu her zaman çok kesin değildir. Farklı durumlar için farklı sonuçlar elde edilebilir. Zaman veya hafıza tercihine göre değişik algoritmalar seçilmiş olabilir. • Daha iyisi mümkün mü? Olabileceklerin en iyisi mi sorusunun cevabının verilmesidir. Bu analiz içindeki en zor aşamadır.
Örneğin günlük hayatımızdaki eylemlerin bir çoğu da aslında birer algoritma oluşturur. Canımız Türk kahvesi cektiğini farzederek bununla ilgili algoritmayı oluşturalım
Her algoritma aşağıdaki kriterleri sağlamalıdır. 1. Girdi: Sıfır veya daha fazla değer dışardan verilmeli, 2. Çıktı: En az bir değer üretilmeli 3. Açıklık: Her işlem açık olmalı ve farklı anlamlar içermemeli 4. Sonluluk: Her türlü olasılık için algoritma sonlu adımda bitmeli 5. Etkinlik : Her komut kişinin kalem ve kağıt ile yürütebileceği kadar basit olmalı. Örnek1:
1’den 100’e kadar olan sayıların toplamını veren algoritma. 1. Toplam (t), sayılar da (x) diye çağırılsın, 2. Başlangıçta t’nin değerini 0, x’nin değerini 1 yap, 3. x’nin değerini t’ye ekle, 4. xi’nin değerini 1 artır, 5. Eğer x’nin değeri 100’den büyük değilse 3.adıma git. 6. t’nin değerini yaz.
Örnek2:
Bir aracın otopark ücretinin hesaplanması. Araçların en fazla otoparkta 24 saat kaldığını varsayalım ve ücretlerin de; 0 - 2 saat 20 tl 2 - 8 saat 30 tl 8 – 24 saat 40 tl şeklinde olduğunu düşünelim. 1. Aracın otoparkta kalma süresini öğren (t) 2. t <= 2 ise 2.1. ücret = 20 tl Aksi halde 2.1. t <= 8 ise 2.1.1. ücret = 30 tl Aksi halde 2.1.1. ücret = 40 tl 3. Ücreti yaz 4. Bitir. 6. Bitir.
algoritma ile alakalı anlatmadığımız sadece akış şemalarında ki çizgiler var. onuda fırsat olursa anlatırım.size kolay gelsin
Eksik ve hatalı bir kısım var ise bildirin ki düzelteyim.