Bu içerikte bilgisayar teknolojileri hususunda oldukça önemli olan algoritma ve algoritma analizine ilişkin olarak bilinmesi gerekenlere yer veriyoruz.
Genel itibariyle bilgisayarlar ile özdeşleştirilmekte olan algoritmalar, günlük hayatta her zaman karşımıza çıkabilmektedir. Algoritmalarda girdi ve çıktıların net olarak tanımlanması gerekir. Bunun yanı sıra algoritmanın bilgisayar kodu ile karıştırılmaması gerekir çünkü algoritmalar bilgisayar kodu içermemelidir.
Algoritmanın temel mantığı, izlenmesi gereken sıralı, kurallı, açık adımlardan oluşmakta olan dizi bütünü olmasıdır. Bilgisayar biliminde yaygın durumda olsada her algoritmanın aynı sonucu vermeyeceğini, performans farklarının söz konusu olduğunu söyleyebiliriz.
Bilgisayarlar yapı itibariyle net girdiler istemekte, sezgiler yerine kesin ve açık adımlarla çalışmaktadır. Algoritmanın bilgisayar biliminde kullanılmasının nedeni budur.
Genel itibariyle komutlar ile inşa edilen algoritmalarda bilgisayar kodu gözükmemektedir ve her adım net, anlaşılır olarak ifade edilir.
Üç sayı içerisinde en büyük olanı bulmakta olan algoritma örneği:
- -c, d, e, adında değişkenlik tanımla
- -Kullanıcıdan sayıları girmesini iste.
- -Kullanıcının girdiği sayıları oku.
- -Değişkenlere sayıları ata
- -Eğer c sayısı d sayısından büyükse; a sayısı c sayısından büyük mü diye bak
- .
- .
- .
- Şeklinde devam eder…
Algoritmanın verimliliği; Algoritmayı yürütebilmek için gereken süreye, depolamaya bağlı olup, verimlilik veri büyüklüğüne göre analiz edilmekte, veri artıkça geçen süre ile depolama alanı ölçümü yapılmaktadır.
Algoritma analiz edilirken bilgisayarın algoritmayı çalıştırabilmesi için gerekli olan süreye, harcaması gereken depolama alanına bakılmakta ve böylece algoritmanın nasıl sonuç vereceği hesaplanmaktadır.
Algoritmalarda verimlilik analizlerinden en bilineni asimptotik analiz olup, algoritma için geçen süre ile depolama alanını girdinin büyümesine bağlı olarak ölçmektedir. Bu bağlamda en çok bilinen asimptotik notasyonlar: Omega, Büyük O, Theta notasyonlarıdır.
Theta Notasyonu
Theta notasyonu, ölçülen algoritmanın alacağı ortalama süre olup, C2g(n) değeri algoritmanın çalışması için gerekli maksimum süre, C1gn(n) değeri ise algoritmanın çalışması gerekli sürenin minimum süre zarfıdır. Theta notasyonu bu doğrultuna ortalama geçen süreyi verir.
Büyük-O Notasyonu (O – Notasyonu)
Bir algoritma için harcanan sürenin en yüksek halini baz alan büyük O notasyonu, algoritmanın en kötü çalışma şeklini hesaplamaktadır. Bilgisayar programlarında çoğu kez büyük o notasyonu baz alınır.
Omega Notasyonu (Ω – Notasyonu)
Bir algoritma için harcanan sürenin en az halini baz almaktadır. Algoritmanın en iyi çalışma şeklini hesaplamakta olan notasyondur.