Programlamada Algoritma Nedir?

Programlamada Algoritma Nedir?
Algoritma Nedir?
0

Algoritmanın Tanımı

Algoritmayı kısa ve basit bir şekilde tanımlamamız gerekirse, algoritma daha önceden belirlenmiş bir görevi veya işlemi yerine getiren ve sonu olan işlemler dizisidir diyebiliriz. Algoritmayı daha detaylı bir şekilde tanımlamak istersek daha önceden belirlenmiş bir problemin veya sorunun çözümü için gerçekleşmesi gereken adımları yoruma kapalı olarak sıralı, düzenli ve açık bir şekilde yazı ve sözler ile olan ifadesidir diyebiliriz. Algoritma adımlarında özellikle dikkat edilmesi gereken nokta adımların sıralı ve açık bir şekilde ifade edilmiş olmasıdır.

Algoritma Hakkında Bilinmesi Gerekenler

Algoritmanın açık ve sıralı bir şekilde ifade edilmesi program yazma kısmından çok daha önemlidir. Bir yazılımcı açısından programın programlama dilleri ile kodlanması işin basit kısmı kalmaktadır. Hazırlanan algoritmada problem net değilse, çözüm net değilse ya da çözüm adımları sıralı değil ise programlama dili (Java, PHP, C, C#, C++, Python, Visual Basic, JavaScript vb.) ne olursa olsun hiç bir önemi yoktur.

Gündelik hayatımızda da olduğu gibi bir problem veya sorunun çözüme ulaşabilmesi için birden fazla yol kullanılabilir. Bu da demek oluyor ki programlama dünyasındaki sorun veya problemlerimiz içinde birden fazla algoritma yazılabilir, bir sorun için yüzlerce program oluşturulabilir.

Örnek Algoritma Türleri

Algoritma türleri çok fazla olabilir. Aşağıda en çok karşılaşabileceğimiz algoritma türleri listelenmiştir.

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

Algoritmalarda Olması Gereken Genel ve Temel Özellikler

Algoritmaların Temel Özellikleri
Algoritmaların Temel Özellikleri

Her algoritmada olması gereken özellikler vardır. Örneğin bir algoritmanın mutlaka bir sonu olmaldır.

    • Giriş ve Çıkış bilgileri olmalıdır.
      Algoritmalarda dışarıdan alınan veriler giriş bilgisi olarak adlandırılır. Bu veriler algoritma adımlarına göre işlenir ve daha sonra çıkış bilgisi olarak dışarıya aktarılır. Giriş ve çıkış bilgisi her algoritmada bulunur. Algoritmaların temel amacı bir giriş bilgisini okuyup bunu işleyerek çıkışa aktarmaktır. Her zaman çıkış bilgisi problemi tam anlamıyla çözmek zorunda değildir. Bu gibi durumlarda da bir algoritmadan işlenip çıkışa aktarılan bilgi başka bir algoritma için giriş bilgisi olur ve problemin çözümü için gerekli işlemler 2. algoritmada gerçekleşebilir. Bu işlemi programcı istediği bilgiyi elde edene kadar gerçekleştirebilir.
    • Sonu olmalıdır.
      Programcının hazırlamış olduğu algoritmada mutlaka bir son olmalıdır. Algoritma sonsuz döngüye hiç bir zaman girmemelidir.
    • Kesinlik olmalıdır.
      Algoritmalarda bulunan komutlar her zaman bir insanın kalem, kağıt ile ilerletebileceği kadar kesin ve basit bir şekilde ifade edilmelidir. Komutlar hiç bir şekilde yorum ifadesi gerektirmemeli ve belirsiz ifadeler bulundurmamalıdır.
    • Etkinlik olmalıdır.
      Algoritmaların temel özelliklerinden biri olan bu özelliği şu şekilde açıklayabiliriz; hazırlanan algoritma etkin olabilmesi için ana algoritma ve alt algoritmalar şeklinde ayrılarak düzenli olmalı ve gereksiz tekrarlar içermemelidir. Örneğin elimizde ana algoritması bulunan bir ortalama bulma programının bu ana algoritmasını bir sınıfın yaş ortalamasını bulmak için, bir sınıfın not ortalaması bulmak için vb. programlarda kullanabiliriz. Bu da programcı açısından bazı durumlarda büyük zaman tasarrufu sağlayabilir.
    • Hazırlanan algoritmanın bir probleme çözüm olması bu amacını başarması ve bunu en kısa sürede gerçekleştirmesi gerekmektedir. Bir algoritmanın performans değerinin belirlenmesi için aşağıdaki kriterler göz önüne alınır.
      • Aktarma zamanı
      • Kıyaslama zamanı
      • Veri arama ve getirme zamanı
      • Birim işleme zamanı

Cevdet Buğra Şahin

Paylaş