Algoritma Analizi Projesi

Geçen dönem aldığımız derslerden biri olan Algoritma Analizi’nin projesinde bizden iki ayrı görevin JAVA ile kodlanması, analiz edilmesi ve bunun raporlanıp grafiklerinin çizilmesi istenmişti.

Birinci Kısım

Bubble Sort versus Quick Sort Bubble Sort versus Quick Sort   {right}Projenin birinci kısmında iki tane sıralama algoritması belirleyip bu algoritmaları implement etmemiz bekleniyordu. Daha sonra rastgele yaratılan dizileri bu algoritmaları kullanarak sıralamamız ve zaman karmaşıklığı analizi yapmamız isteniyordu.

Biz bubble sort ve quick sort algoritmalarını seçtik. Rastgele üretilen 1000, 2000, 3000, … , 10000 elemanlı dizileri her iki algoritmayı da kullanarak sıraladık. (İki algoritmada da aynı diziler kullanıldı.)

Acaba bubble sort, algoritmanın püsüdokod hali analiz edildiğinde ortaya çıktığı gibi O(n<sup>2</sup>) miydi pratikte de? Ya da quick sort O(n log n)?

Sonuçlarımızı grafik ve data set haline getirdik ve kendi yorumlarımızı da içeren bir rapor yazdık. Yazının devamında hepsini bulabilirsiniz.

İkinci Kısım

knapsack-problem-cozum-suresi-ns knapsack-problem-cozum-suresi-ns   {right}Projenin ikinci kısmında ise bizden knapsack problemi için iki adet çözüm algoritması geliştirmemiz bekleniyordu. Bunlardan birisi exhaustive search, diğeri de dynamic programming yöntemli algoritmalardı.

İkisini de ayrı ayrı yazdık. Kapasite ve eleman değerlerindeki değişime göre iki algoritmadaki hız değişimlerini inceledik. Püsüdokodu inceleyerek yaptığımız analizle pratikte aynı algoritmaların ne kadar aynı sonucu verdiğini inceledik.

Bunun sonuçları da yine raporda yer alıyor.

Proje Hakkında Yorumlar

Proje hem çok uğraştırıcı değildi, hem de kodlama içerdiğinden çok zevkliydi, hem de bazı noktaları cidden kafa çalıştırmayı gerektiriyordu.

Rapor yazmak sıkıcıydı, rapor yazmak her zaman sıkıcıdır zaten. 😃

Özetle: Şahane bir projeydi.

İndir

Bitirirken

Bu yazı yayımlanmadan önce proje arkadaşlarımdan gerekli izinler alınmıştır.