Algoritma Nedir?

Algoritma Nedir?
Algoritma Nedir?

Yazılım dünyasında algoritma neden önemlidir? Birçok öğrenci ya da mesleğinin başlarında olan yazılım geliştirici algoritma konusunun yazılım dünyasında gerçekten önemli olup olmadığı sorusuna yanıt arar. Gelin bu yazıda bu soruya birlikte yanıt arayalım. Genelde bilgisayar ya da matematik terimi olarak duyduğumuz algoritmayı en basit anlamda bir probleme çözüm üreten bir dizi adım olarak tanımlayabiliriz. Bu bir dizi adım önceden tanımlanmış kurallar bütünüdür. Bilgisayar ve yazılım dünyasında gerçek hayat problemlerine çözüm üretirken yine algoritmalardan faydalanırız.

Bilgisayar yazılımları algoritmaların programlama dillerinde kodlanmasından oluşur. Bu nedenle algoritmalar bilgisayar programlamada çok önemli temel taşlardan biridir. Sıkça karşılaşılan problemlere çözüm olarak üretilen ve yaygın olarak kullanılan birçok algoritma vardır.
Sıralama (sort), arama (search) algoritmaları gibi. İhtiyaç halinde, benzer problemlere çözüm üretirken daha önceden hazırlanan bu algoritmalardan faydalanabiliriz.
Algoritmalar programlama dilinden bağımsızdır, istenilen dilde kodlama yaparken kullanılabilir.

Neden algoritma bilmeliyim?

Yazılım dünyasında bir problemi çözmenin birçok yolu vardır. Ancak önemli olan en optimum şekilde çözmektir. Algoritmalar, programlama dilinden bağımsız olarak bilinen bir probleme en optimum çözümü sağlamak üzere hazırlanırlar. Programlama açısından optimum çözüm, doğru sonuçlara en hızlı şekilde ve en az maliyetle ulaşmaktan geçer. Maliyet deyince CPU, RAM gibi bilgisayar kaynaklarını kullanım maliyeti devreye girer. Maliyet yazılım dünyasında çok önemli bir kriterdir. Bilgisayar kaynaklarının sonsuz olmadığını düşünürsek elimizdeki kaynakları en uygun şekilde kullanan yazılımlar daha makbuldür. Bu nedenle uğraştığımız bir problemle ilgili daha önceden hazırlanan ve kabul görmüş algoritmaları kullanmak tekerleği yeniden keşfetmemeye benzer. Böylelikle probleme çözüm hazırlarken hem zamandan kazanır hem de kaynakları optimum kullanan çözümler üretmiş oluruz.

Algoritma nasıl hazırlanır?

Yazılım dilinde bir algoritma bir dizi girdi değer(input variables) alır, bunlara değişken parametreler denir (sabit değildir, her defasında farklı değerlerle çalıştırabiliriz). Algoritma adım adım çalıştırılır ve sonuç olarak çıktı değerlerini (output variables) üretir.
Algoritmalar konuşma dilinde yazılırlar. Programlama diline çevrildiklerinde buna kod (code) denir.

Algoritma hazırlamanın temel adımları şu şekildedir;
1. Problemi tanımla ve analiz et: Hangi probleme çözüm aranıyor?
2. Veri topla: Elimizde problemi çözmek için hangi veriler (input) var?
3. Veri işleme: Toplanan verileri de kullanarak adım adım algoritma kurallarını tanımla
4. Sonuç: Tasarlanan algoritmayı optimize et ve istenen çıktıları ürettiğinden emin ol.

Untitled design
Algoritma Nedir?

Örneğin verilen 3 sayı arasından en büyük olanı bulan bir algoritma hazırlayalım.
1. Adım: Başla
2. Adım: 3 sayıyı girdi olarak al ve a, b, c değişkenlerinde sakla
3. Adım: a, b ve c’yi karşılaştır, eğer a, b ve c’den büyükse en büyük sayı a’dır
4. Adım: b ve c’yi karşılaştır, eğer b, c’den büyükse en büyük sayı b’dir
5. Adım: Hiçbiri değilse c en büyük sayıdır
6. Adım: Bitir

Algoritmalar genellikle pseudocode olarak adlandırılan, konuşma diline benzer bir metin şeklinde yazılır ve akış şeması (flowchart) ile görselleştirilir. Akış şemasında semboller kullanılarak adımlar görsel olarak ifade edilir.
Yazdığımız bu algoritmanın pseudocode’unu hazırlayalım;
BEGIN
NUMBER a,b,c
INPUT a
INPUT b
INPUT c
IF a > b AND a > c THEN
OUTPUT a + “en büyük sayı”
ELSE IF b > c THEN
OUTPUT b + “en büyük sayı”
ELSE
OUTPUT c + “en büyük sayı”
ENDIF
END

Yazdığımız bu algoritmayı akış şeması ile gösterelim;

Untitled design
Örnek akış şeması

Bu basit algoritma örneği ile umarım algoritma konusu kafanızda daha iyi şekillenmiştir.
Daha karmaşık problemler için elbette daha karmaşık algoritmalar gerekecektir. Ancak yöntem aynıdır;
problemi tanımla, algoritmayı seç ya da hazırla ve çözümü programlama dilinde kodla.
Keyifli programlamalar dilerim.

Dilfuruz Kızılpınar – Bilgisayar Mühendisi

https://www.linkedin.com/in/dilfuruz-kizilpinar/

İlk yorum yapan olun

Bir Cevap Yazın