Programlama Ve Algoritmalar Dersi 5. Ünite Sorularla Öğrenelim

Algoritma Analizi
Açıköğretim ders notları öğrenciler tarafından ders çalışma esnasında hazırlanmakta olup diğer ders çalışacak öğrenciler için paylaşılmaktadır. Sizlerde hazırladığınız ders notlarını paylaşmak istiyorsanız bizlere iletebilirsiniz.
Açıköğretim derslerinden Programlama Ve Algoritmalar Dersi 5. Ünite Sorularla Öğrenelim için hazırlanan ders çalışma dokümanına (ders özeti / sorularla öğrenelim) aşağıdan erişebilirsiniz. AÖF Ders Notları ile sınavlara çok daha etkili bir şekilde çalışabilirsiniz. Sınavlarınızda başarılar dileriz.
Algoritma Analizi
Asimptotik Gösterimler nelerdir?
• Büyük O Gösterimi
• Büyük ? Gösterimi
• Büyük ? Gösterimi
int faktoriyel(int n)
{
if (n == 0)
return 1;
else
return faktoriyel(n – 1)*n;
}
faktöriyel hesabının zaman karmaşıklığı nedir?
O(n)
Özyinelemeli Olmayan Algoritmaların Analizi nasıl yapılır?
1. Problemin girdi büyüklüğünü veren parametre belirlenir.
2. Algoritmanın temel operasyonu belirlenir.
3. Temel operasyonun sadece girdi büyüklüğüne bağlı olarak mı değiştiği kontrol
edilir. Eğer başka parametrelere göre de değişiyorsa bunlar belirlenir.
4. Temel operasyon için toplam ifadesi bulunur.
5. Toplam ifadeleri için verilen standart formüller ve kurallar kullanılarak algoritmanın ait olduğu verimlilik sınıfı bulunur.
For döngüsünün çalışma zamanı ne kadardır?
for döngüsünün çalışma zamanı, içerisindeki operasyonların çalışma zamanının iterasyon sayısı ile çarpımı kadardır
Üçüncü dereceden (kübik) hangi Temel Asimptotik Verimlilik sınıftadır?
n3
(g(n)) = ?f(n): 0 ? f(n) ? cg(n), n ? n0} ne gösterimidir?
Büyük O Gösterimi
Logaritmik hangi Temel Asimptotik Verimlilik sınıftadır?
log n
n=10^5 olduğunda log2n ne olur?
17
for (i = 0; i < n; i++)
{
m = m + i;
}
for ( i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
m = m + i;
}
}
ikinci döngünün zaman karmaşıklığı nedir?
O(n2)
bool ikiliArama(int A[], int N, int eleman)
{
int orta = N / 2;
if (N <= 0)
return false;
if (key == A[orta])
return true;
else if (key < A[orta])
return ikiliArama(A, orta, eleman);
else
return ikiliArama(&A[orta + 1], N – orta – 1, eleman);
}
ikili arama algoritmasının en kötü durum çalışmasındaki zaman karmaşıklığı nedir?
O(log N)
n=10^3 olduğunda nlog2n ne olur?
10^4
Özyinelemeli Algoritmaların Analizi nasıl yapılır?
1. Girdi büyüklüğünü veren parametre belirlenir.
2. Algoritmanın temel operasyonu belirlenir.
3. Girdi parametresine göre problemin temel operasyonunun çalışma sayısının değişip değişmeyeceği belirlenir.
4. Başlangıç koşulları ile birlikte algoritmanın özyinelemeli fonksiyon bağıntısı yazılır.
5. Fonksiyonların büyümesi ve toplam ifadeleri kullanılarak özyineleme bağıntısı çözülür ve zaman karmaşıklığı bulunur.
Faktöriyel hangi Temel Asimptotik Verimlilik sınıftadır?
n!
Aşağıda verilen kod parçacığının çalışma zamanının üst sınırını (zaman karmaşıklığı)
nedir?
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
m = m + i;
for (j = 0; j < n; j++)
m = m + j;
}
O(n2)
for (i = 0; i < n; i++)
{
m = m + i;
}
for ( i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
m = m + i;
}
}
ilk döngünün zaman karmaşıklığı nedir?
O(n)
Lineer hangi Temel Asimptotik Verimlilik sınıftadır?
n
Yarı doğrusal hangi Temel Asimptotik Verimlilik sınıftadır?
nlog n
(g(n)) = ?f(n): c1 g(n) ? f(n) ? c2 g(n), n ? n0} ne gösterimidir?
Büyük ? Gösterimi
(g(n)) = ?f(n): 0 ? cg(n) ? f(n), n ? n0} ne gösterimidir?
Büyük ? Gösterimi
int ToplamRecursive(int n)
{
int tmpToplam = 0;
if (n == 1) return 1;
tmpToplam = ToplamRecursive(n – 1);
return tmpToplam + n;
}
çalışma zamanı fonksiyonu nasıldır?
T(n) = { 1 n =1
T(n-1)+1 n>1
Asimptotik Gösterimler nelerdir?
• Büyük O Gösterimi
• Büyük ? Gösterimi
• Büyük ? Gösterimi
int faktoriyel(int n)
{
if (n == 0)
return 1;
else
return faktoriyel(n – 1)*n;
}
faktöriyel hesabının zaman karmaşıklığı nedir?
O(n)
Özyinelemeli Olmayan Algoritmaların Analizi nasıl yapılır?
1. Problemin girdi büyüklüğünü veren parametre belirlenir.
2. Algoritmanın temel operasyonu belirlenir.
3. Temel operasyonun sadece girdi büyüklüğüne bağlı olarak mı değiştiği kontrol
edilir. Eğer başka parametrelere göre de değişiyorsa bunlar belirlenir.
4. Temel operasyon için toplam ifadesi bulunur.
5. Toplam ifadeleri için verilen standart formüller ve kurallar kullanılarak algoritmanın ait olduğu verimlilik sınıfı bulunur.
For döngüsünün çalışma zamanı ne kadardır?
for döngüsünün çalışma zamanı, içerisindeki operasyonların çalışma zamanının iterasyon sayısı ile çarpımı kadardır
Üçüncü dereceden (kübik) hangi Temel Asimptotik Verimlilik sınıftadır?
n3
(g(n)) = ?f(n): 0 ? f(n) ? cg(n), n ? n0} ne gösterimidir?
Büyük O Gösterimi
Logaritmik hangi Temel Asimptotik Verimlilik sınıftadır?
log n
n=10^5 olduğunda log2n ne olur?
17
for (i = 0; i < n; i++)
{
m = m + i;
}
for ( i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
m = m + i;
}
}
ikinci döngünün zaman karmaşıklığı nedir?
O(n2)
bool ikiliArama(int A[], int N, int eleman)
{
int orta = N / 2;
if (N <= 0)
return false;
if (key == A[orta])
return true;
else if (key < A[orta])
return ikiliArama(A, orta, eleman);
else
return ikiliArama(&A[orta + 1], N – orta – 1, eleman);
}
ikili arama algoritmasının en kötü durum çalışmasındaki zaman karmaşıklığı nedir?
O(log N)
n=10^3 olduğunda nlog2n ne olur?
10^4
Özyinelemeli Algoritmaların Analizi nasıl yapılır?
1. Girdi büyüklüğünü veren parametre belirlenir.
2. Algoritmanın temel operasyonu belirlenir.
3. Girdi parametresine göre problemin temel operasyonunun çalışma sayısının değişip değişmeyeceği belirlenir.
4. Başlangıç koşulları ile birlikte algoritmanın özyinelemeli fonksiyon bağıntısı yazılır.
5. Fonksiyonların büyümesi ve toplam ifadeleri kullanılarak özyineleme bağıntısı çözülür ve zaman karmaşıklığı bulunur.
Faktöriyel hangi Temel Asimptotik Verimlilik sınıftadır?
n!
Aşağıda verilen kod parçacığının çalışma zamanının üst sınırını (zaman karmaşıklığı)
nedir?
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
m = m + i;
for (j = 0; j < n; j++)
m = m + j;
}
O(n2)
for (i = 0; i < n; i++)
{
m = m + i;
}
for ( i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
m = m + i;
}
}
ilk döngünün zaman karmaşıklığı nedir?
O(n)
Lineer hangi Temel Asimptotik Verimlilik sınıftadır?
n
Yarı doğrusal hangi Temel Asimptotik Verimlilik sınıftadır?
nlog n
(g(n)) = ?f(n): c1 g(n) ? f(n) ? c2 g(n), n ? n0} ne gösterimidir?
Büyük ? Gösterimi
(g(n)) = ?f(n): 0 ? cg(n) ? f(n), n ? n0} ne gösterimidir?
Büyük ? Gösterimi
int ToplamRecursive(int n)
{
int tmpToplam = 0;
if (n == 1) return 1;
tmpToplam = ToplamRecursive(n – 1);
return tmpToplam + n;
}
çalışma zamanı fonksiyonu nasıldır?
T(n) = { 1 n =1
T(n-1)+1 n>1