15 1 0 4000 1 https://haktanbozer.com.tr 300

Algoritma Karmaşıklığı Nedir?

Kaba Kod Nedir?

Bir program yazarken kullandığım adımlar veya yolların hiçbir programlama dili kullanılmadan günlük hayattaki kullandığımız dille yazılması kaba kod olarak adlandırılır. Örnek vermek gerekirse kullanıcıdan alınan iki sayıyı toplayan bir program yazacağımızı düşünelim. Bunun kaba kod karşılığı şöyledir;

  1. Kullanıcıdan 1. Sayıyı Al
  2. Kullanıcıdan 2. Sayıyı Al
  3. Bu İki Sayıyı Topla
  4. Ekrana Yazdır.

Gördüğünüz gibi gayet basittir ve belirli bir kuralı yoktur. Kaba kod yazarken gayet özgürsün önemli olan sıralı bir şekilde ilerlemektir.

 

Algoritma Nedir?

Kaynak https://www.mediaclick.com.tr/tr/blog/algoritma-nedir

Algoritma, Bir problemin çözümünde kullanılacak olan talimat, plan, yoldur. Kesin bir yöntemdir. Günlük hayatta pek çok alanda karşımıza çıkar. Örneğin yemek yaparken, matematikte bir problemi çözerken veya bir program yazarken fark etmeden de olsa kullandığımız bir yöntemdir. Eğer işlem bu adımları takip edilerek yapılmazsa bir sorunla karşılaşabiliriz.

 

Algoritmayı oluştururken genellikle akış diyagramı kullanılır. Akış diyagramındaki her şekil bir anlam ifade eder. İzlenilecek yol daha kolay anlaşıldığı için bu yöntem kullanılır.

Kaynak https://tr.wikipedia.org/wiki/Ak%C4%B1%C5%9F_%C5%9Femas%C4%B1

 

ÖRNEK

Kullanıcıdan alınan iki sayının toplamını bulan algoritmayı yazınız.

  • Adım=Başla
  • Adım=Kullanıcıdan 2 tane sayı al
  • Adım=2 sayıyı topla
  • Adım=Ekrana göster
  • Adım=Bitir

Algoritma Analizi Nedir?

 

Algoritmanın nasıl çalıştığını, ne kadar zamanda çalıştığı, sonlanıp sonlanmadığı, herhangi bir konuda bir algoritmanın yazılıp yazılamayacağı konusunda temel sorular ile ilgilenir. Bir algoritma 3 şekilde incelenir.

  • Worst Case (En Kötü Durum)

Bu durum bir algoritmanın en fazla çalışacağı durumu gösterir. Bundan daha fazla çalışmayacağının garantisini verir

 

  • Best Case (En iyi Durum)

Bu durum bir algoritmanın çalışabileceği en kısa zamanı gösterir. Bundan daha az çalışamayacağını gösterir.

 

  • Average Case (Ortalama Durum)

Bu durum algoritmanın ortalama çalışma süresini gösterir.

 

 

En iyi Durum=Döngünün bir kere çalışması

 

En Kötü Durum=Döngünün N/2 kez çalışması

 

Ortalama Durum=Döngünün N kez çalışması

 

 

Algoritma Karmaşıklığı Nedir?

 

Problemleri çözmek için geliştirilen algoritmaların bilgisayarda yürütülme süreleri incelenirse bazı çözümler için bulunan sürelerin hiç de kabul edilebilir olmadığı görülür. Bu durumda algoritmaların kurulmasını ve etkinliğini ayrıca incelemek önemli hale gelir. Hatta çoğu zaman problemin çözümünde yapılacak olan hesaplama yükünün de ölçülmesi gerekebilir. Bütün bunlar problemin giriş veri sayısına (n sayısına) bağlıdır. Bir algoritmada n büyüdükçe bu yükün hızla artmaması istenebilir. Bir algoritmik çözümün büyüklüğünü ölçmek için bir birime ihtiyacımız vardır. Karmaşıklık analizi için kullanılan başlıca yöntemler aşağıdaki gibidir.

  • Deneysel Analiz Yöntemi

Benzer bir problemdeki denenmiş bir algoritma hesaplama deyimine dayanır. Bilimsel yaklaşımdan çok, uygulamaya yöneliktir.

  • RAM (Random Access Machine) Modeli

RAM modeli algoritma gerçekleştirimlerini ölçmek için kullanılan basit bir yöntemdir. Genel olarak çalışma zamanı veri giriş boyutu n’e bağlı T(n) ile ifade edilir.

 

Örnek

Aşağıdaki örneğin yürütme zamanını hesaplayınız?

 

 

 

 

 

 

 

 

Kaynakça

https://nerdbook.wordpress.com/2018/03/19/algoritma-analizi/

https://medium.com/algorithms-data-structures/algoritma-karma%C5%9F%C4%B1kl%C4%B1%C4%9F%C4%B1-big-o-5f14316890a4

 

Paylaş:
Ulam:Nedir?
Önceki Yazı
Temel Veri Türleri Nedir?
Sıradaki Yazı
Big-O Notasyonu Nedir?