Algoritma analizlerini görmüştük. Artık algoritma türlerine giriş yapabiliriz. İlk bahseceğimiz algoritma türü Brute Force olacaktır. Brute force algoritmalarda bir kaba kuvvet söz konusudur. Çok kolay tasarlanıp implement edilebilir fakat diğer algoritmalara göre daha yavaş çalışabilirler. Bir kaç algoritmaya göz atalım, selection sort ve bubble sort. ... Devamını Oku
JanFranco | 199 | 0 | 2 min read
Recursive olmayan algoritmaların analizini gördük. Bu bölümde recursive algoritmaların analizini yapacağız. Bir örnekle başlayalım:
Bu algoritmaya ilk baktığımızda iki denklem elde ediyoruz:Algorithm F(n) if n = 0 return 1 else return F(n - 1) * n
Bu bölümde örneklerle algoritmanın efektifliğini ölçeceğiz. Aşağıdaki algoritma ile başlayalım:
Bir dizideki en büyük elemanı bulan basit bir algoritmanın ... Devamını Oku JanFranco | 242 | 0 | 2 min readAlgorithm MaxElement(A[0..n-1]) maxval <- A[0] for i <- 1 to n - 1 do if A[i] > maxval maxval <- A[i] return maxval
Bir önceki yazımda da belirttiğim gibi algoritmaların etkinliği büyüme oranı ile ölçülür. Bu değerlerin karşılaştırılması ve ifade edilebilmesi için asymptotik ifadeler kullanılır: Oh, Theta, Omega. Bunları incelemeden önce kullanacağımız bir kaç fonksiyondan bahsedeyim. t(n) dediğimde bu algoritmanın çalışma süresidir, g(n) ise t(n) fonksiyonunu karşılaştıracağımız basit ... Devamını Oku
JanFranco | 220 | 0 | 2 min readBu bölümde algoritmaların analizini yapacağız, verimlilikleri ölçeceğiz. Verimliliği iki ana kısımda inceleyebiliriz: Time efficiency ve space efficiency. Zaman verimliliği aynı zamanda time complexity olarak da geçer ve bir algoritmanın hızını baz alır. Yer verimliliği ise space complexity olarak geçer ve algoritmanın input ve outputlar ile ... Devamını Oku
JanFranco | 287 | 0 | 3 min read