2 Haziran 2016 Perşembe

Algoritma Analizi


Algoritma Nedir ?

  Belli bir problemi çözmek veya belirli bir amaca ulaşmak için tasarlanan yoldur. 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 Analizi Nedir ?

 Algoritma analizi çalışmalarının dayandığı karmaşıklık teoremi genel olarak bir bilgisayar programının veya algoritmasının asimptotik değerini bulmayı hedefler. Buradaki amaç, algoritmanın ulaşabileceği en kötü veya en iyi durumu matematiksel olarak modellemektir.

•Özelliklerinin analizi
–Algoritmanın çalışma zamanı
–Hafızada kapladığı alan 

Bir programın performansı genel olarak programın işletimi için gerekli olan bilgisayar zamanı ve belleğidir. 
 Karmaşıklık:
Algoritma performansı ölçme yöntemi Bir algoritmanın performansı iç ve dış faktörlere bağlıdır.

 • Girdi verisinin büyüklüğü
 • Bilgisayarın hızı
 • Derleyicinin kalitesi

Algoritma verimliliği:
• Çalıştırmak için gereken zaman
• Çalıştırmak için gereken yer (bellek alanı)


Zaman Karmaşıklığı (Time Complexity):

 Programın işletim süresidir.
 
Yer karmaşıklığı (Space Complexity):

 Programın işletildiği sürece gerekli olan yer miktarıdır.  

  Bir problemin çözümünde, kullanılabilecek olan algoritmalardan en etkin olanı seçilmelidir. En kısa sürede çözüme ulasan veya en az işlem yapan algoritma tercih edilmelidir. Burada bilgisayarın yaptığı iş önemlidir. Bazı durumlarda da en az bellek harcayan algoritmanın tercih edilmesi gerekebilir.
 Programcının yaptığı is açısından veya algoritmaların anlaşılırlıkları bakımından da algoritmalar karşılaştırılabilir. Daha kısa sürede biten bir algoritma yazmak için daha çok kod yazmak veya daha çok bellek kullanmak gerekebilir

Algoritmayı Neden Analiz Ederiz ? 

 –Algoritmanın performansını ölçmek için
 –Farklı algoritmalarla karşılaştırmak için
 –Daha iyisi mümkün mü? Olabileceklerin en iyisi mi? 


Büyüme Hızı ve Büyük-O(big-O)notasyonu:

Büyüme hız bir algoritmanın performansını yansıtan en iyi göstergedir. Büyük-O notasyonu büyüme hızını gösterir. Bir algoritmanın performansını en iyi tanımlayan matematiksel bir formüldür ve algoritmanın iç detaylarına bakılarak elde edilir. Büyük-O girdi verisinin büyüklüğünü gösteren bir N parametresine dayanan bir fonksiyondur.

Diğer Notasyonlar:


Sıralama Algoritmaları İçin Karmaşıklık