ALGORİTMA TASARIMI VE ANALİZİ ARAŞTIRMA SORULARI-1 1. c pozitif bir reel sayı ve g(n) = 1 + c + c2 +…+ cn olmak üzere; a.) Eğer, c < 1 ise, g(n) ϵ Θ(1) olduğunu gösteriniz. b.) Eğer, c = 1 ise, g(n) ϵ Θ(n) olduğunu gösteriniz. c.) Eğer, c > 1 ise, g(n) ϵ Θ(cn) olduğunu gösteriniz. 2. f1(x) ϵ O(g1(x)) ve f2(x) ϵ O(g2(x)) olsun. Buna göre, “O”(büyük O) notasyonunun tanımını kullanarak (f1 + f2)(x) ϵ O(max(g1(x),g2(x)) olduğunu gösteriniz. 3. f(n) = log(n!) olsun. Buna göre, f(n) ϵ O(nlogn) olduğunu büyük O notasyonunun tanımını kullanarak gösteriniz. 4. Çalışma süresi f(n) = 3n log(n!) + (n2 + 3) logn olan bir algoritmanın zaman karmaşıklığını büyük O notasyonunu kullanarak ifade ediniz. 5. Çalışma süreleri aşağıda verilen algoritmaların zaman karmaşıklığını büyük O notasyonunu kullanarak tahmin ediniz: a. n(logn2 + 1) + n2logn b. b. (nlogn + 1)2 + (logn + 1)(n2 + 1) n2 nn n c. 2 6. Aşağıda iki matrisin çarpımını hesaplayan algoritma verilsin: procedure matris çarpımı (A,B; matrisler) for i = 1 to n for j = 1 to n cij = 0; for q = 1 to n cij = cij + aiqbqj return C (C = cij) a. Yukarıda verilen algoritmaya göre, bu matrisin her bir bileşenini hesaplamak için toplam kaç tane çarpma ve kaç tane toplama işlemi yapmak gerekmektedir? b. Matristeki bütün bileşenleri hesaplamak için toplam kaç tane toplama ve çarpma işlemi yapılmalıdır? c. Bu algoritmanın zaman karmaşıklığını bulunuz. 7. Verilen herhangi bir bit ağı (bit string) için bu ağın herhangi bir ardışık sıfır bit çiftini içerip içermediğini test eden bir algoritma tanımlayınız. Tanımladığınız bu algoritmanın sonlandığından ve doğru sonuç ürettiğinden emin olunuz. Tanımladığınız bu algoritmadaki bütün temel işlemleri tespit ediniz ve bunların algoritma doğru sonucu üretene kadar toplamda kaç kez tekrarlandığını algoritmanın en iyi durum ve en kötü durumunu göz önüne alarak hesaplayınız. Buradan hareketle de bu algoritmanın zaman karmaşıklığını bulunuz. 8. Girdi olarak tamsayıların sonlu bir dizisi verildiğinde bu dizideki en büyük elemanın dizide son göründüğü konumu bulan bir algoritma tanımlayınız. Tanımladığınız bu algoritmanın sonlandığından ve doğru sonuç ürettiğinden emin olunuz. Tanımladığınız bu algoritmadaki bütün temel işlemleri tespit ediniz ve bunların algoritma doğru sonucu üretene kadar toplamda kaç kez tekrarlandığını algoritmanın en iyi durum ve en kötü durumunu göz önüne alarak hesaplayınız. Buradan hareketle de bu algoritmanın zaman karmaşıklığını bulunuz.
© Copyright 2024 Paperzz