Forex günlük bülten - ALB Menkul Değerler

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.