Algoritma, belirli bir problemi çözmek veya belirli bir amaca ulaşmak için tasarlanan yol. Matematikte ve bilgisayar biliminde bir işi yapmak için tanımlanan, bir başlangıç durumundan başladığında, açıkça belirlenmiş bir son durumunda sonlanan, sonlu işlemler kümesidir.
Algoritma, bir sorunu çözmek veya belirlenmiş bir amaca ulaşmak için tasarlanan yola, takip edilen işlem basamaklarına denir. Algoritmalar açıkça belirtilmiş bir başlangıcı ve sonu olan işlemler kümesidir. Amaca ulaşmak için işlenecek çözüm yolları ve sıralamaları belirlenir ve algoritma bu sırayı takip ederek en mantıklı çözüme ulaşır.
Algoritma matematikte bir sonuca ulaşmak için takip edilmesi gereken işlem basamaklarını belirlemede kullanılır. Örneğin, 3 ve 5 sayılarının ortalamasını bulmak istediğinizde önce (3+5) işlemini yaptıktan sonra sırada “çıkan sonuç/2” işlemini yapmanız gerekmektedir.
Bilgisayar biliminde algoritmalar yazılımdaki her yerdeler. Örneklendirecek olursak, bilgisayarda offline olarak yapılan tüm işlemler, oynanan oyunlar, çalıştırılan programlar, web siteleri, mobil uygulamalar, robotlar… Kısacası sanal ortamdaki her işlem algoritmalar ile gerçekleşiyor.
Tüm programlama dillerinin temelinde algoritma vardır. Algoritmalar, programlama dillerinin vasıtasıyla uygulanabilirler. Programda kullanılan dil ve kullanım alanı ne olursa olsun algoritması olmayan bir program yoktur. Programda bir algoritmanın işlemesi için dışarıdan gelen tüm girdiler “değişken” olarak tanımlanır. Algoritmadaki döngüler ve işlemler, bu değişkenler üzerinden gerçekleşir. Algoritmadaki tüm ihtimaller belirtilmiş ve net olmalıdır. Hiçbir ihtimal şansa bırakılmamalıdır.
Algoritma örnekleri, algoritmanın uygulandığı alanlara göre değişiklik gösterebilir. Örneğin, bir yemek yaparken, o yemeğin tarifindeki adımlar aslında bir algoritmadır. Bir yere gitmek için takip ettiğiniz yol da bir algoritmadır. Bir matematik problemini çözmek için kullandığınız yöntem de bir algoritmadır.
Bilgisayar biliminde ise algoritma örnekleri daha karmaşık olabilir. Örneğin, bir diziyi sıralamak için kullanılan quicksort algoritması, bir metinde arama yapmak için kullanılan Knuth-Morris-Pratt algoritması, bir grafikte en kısa yolu bulmak için kullanılan Dijkstra algoritması gibi.
Algoritma yazmak için öncelikle sorunu tanımlamak, girdi ve çıktıları belirlemek, çözüm adımlarını sıralamak ve test etmek gerekir. Algoritma yazarken dikkat edilmesi gereken noktalar şunlardır:
- Algoritma basit, anlaşılır ve net olmalıdır.
- Algoritma sonlu sayıda adımdan oluşmalıdır.
- Algoritma adımları sıralı ve mantıklı olmalıdır.
- Algoritma adımları tek bir işlemi ifade etmelidir.
- Algoritma adımları tekrar edilebilir olmalıdır.
Algoritma yazmak için metin olarak düz yazı veya akış diyagramı kullanılabilir. Akış diyagramı, algoritmanın işleyişini neden-sonuç ilişkisini göstererek sırayla aktarılmasını sağlar. Akış diyagramında kullanılan semboller ve anlamları şunlardır:
- Başla/Dur: Algoritmanın başladığı veya bittiği yeri gösterir.
Oval şekilde çizilir.
- İşlem: Algoritmanın bir işlem yaptığı yeri gösterir. Dikdörtgen
şekilde çizilir.
- Girdi/Çıktı: Algoritmanın bir girdi aldığı veya bir çıktı
verdiği yeri gösterir. Paralelkenar şekilde çizilir.
- Karar: Algoritmanın bir koşula bağlı olarak iki farklı yola
ayrıldığı yeri gösterir. Elmas şeklinde çizilir.
- Akış Yönü: Algoritmanın hangi sırayla işlediğini gösterir. Ok
şeklinde çizilir.
Algoritma tarihi, matematik tarihi ile yakından ilgilidir. Algoritma sözcüğü, Özbekistan'ın Harezm, bugünkü Türkmenistan'ın Hive kentinde doğmuş olan Ebu Abdullah Muhammed İbn Musa el Harezmi'den gelir. Bu alim 9. yüzyılda cebir alanındaki algoritmik çalışmalarını kitaba dökerek matematiğe çok büyük bir katkı sağlamıştır. "Hisab el-cebir ve el-mukabala" kitabı dünyanın ilk cebir kitabı ve aynı zamanda ilk algoritma koleksiyonunu oluşturur. Latince çevirisi Avrupa'da çok ilgi görür. Alimin ismini telaffuz edemeyen Avrupalılar "algorizm" sözcüğünü "Arap sayıları kullanarak aritmetik problemler çözme kuralları" manasında kullanırlar. Bu sözcük daha sonra "algoritma"ya dönüşür ve genel kapsamda kullanılır.
(HABER MERKEZİ)