43403158 Kumpulan Soal Dan Jawaban Algoritma Dan Pemrograman 2
Soal Matakuliah Analisis Algoritma
description
Transcript of Soal Matakuliah Analisis Algoritma
Tugas ANALISIS ALGORITMA
SOAL :
1. a. jelaskan tujuan dari analisis algoritma?b. jelaskan mengenai worst case, best case, dan average case?
2. Tn = 1/3 + 2/3 + 1 + 4/3 + …… + 1/3na. Tentukan kompleksitas waktub. Tentukan big O
3. Terdapat persoalan berikut:Terdapat sekumpulan array bertipe integer, kemudian tentukan total nilainya.a. Jelaskan operasi dasarnyab. Buat algoritmanyac. Tentukan kompleksitas waktu
4. A. Jelaskan karakteristik dari brute forceB. apa kelebihan dan kekurangan brute force
5. Terdapat algoritma :for i → 1 to n-1 do for j → n down to n-1 do
if ( A [ j ] > A[ j-1 ] ) thentemp → A [ j ]A [ j ] → A [ j-1 ]A [ j-1 ] → temp
end ifend for
end forTentukan Big-O-nya ??
JAWABAN :
1. a. jelaskan tujuan dari analisis algoritma? Tujuan dari analisa algorithma adalah untuk mengetahui efisiensi algoritma,
baik itu efisiensi waktu dan juga efisiensi storage.b. jelaskan mengenai worst case, best case, dan average case?
Worst-case : kompleksitas waktu untuk waktu terburuk (waktu tempuh bernilai maksimum dari suatu fungsi f(n)) atau Tmax(n)
Best-case : kompleksitas waktu untuk waktu terbaik (kompleksitas waktu yang bernilai minimum dari suatu fungsi f(n)) atau Tmin(n)
Average-case : kompleksitas waktu untuk kasus rata-rata
2. a). Tn = 1/3 + 2/3 + 1+ 4/3+………….+ 1/3 nTn = 1/3 (1+2+3+4+………………….+ n)
1/3. ½ n (n+1) 1/6 n (n+1)
1/6 n2 + 1/6 n Tn = O (n2)
b). 1/6 n2 + 1/6 n ≤ 1/6 n2 + 1/6 n2 1/6 n2 + 1/6 n ≤ 1/3 n2 C = 1/3 , n0= 1 , n ≥ 1
3. a). Menjumlahkan semua nilai dari masing- masing arrayb). tot ← 0 for i ← 1 to n do
tot ← tot + A [i] O(1) endforc). Tn = n . O(1) = O (n)
4. a). Karakteristik Algoritma Brute Force Algoritma brute force umumnya tidak “cerdas” dan tidak mangkus, karena ia
membutuhkan jumlah langkah yang besar dalam penyelesaiannya. Kadang-kadang algoritma brute force disebut juga algoritma naif (naïve algorithm).
Algoritma brute force seringkali merupakan pilihan yang kurang disukai karena ketidakmangkusannya itu, tetapi dengan mencari pola-pola yang mendasar, keteraturan , atau trik-trik khusus, biasanya akan membantu kita menemukan algoritma yang lebih cerdas dan lebih mangkus.
Untuk masalah yang ukurannya kecil, kesederhanaan brute force biasanya lebih diperhitungkan daripada ketidakmangkusannya. Algoritma brute force sering digunakan sebagai basis bila membandingkan beberapa alternatif algoritma yang mangkus.
Meskipun brute force bukan merupakan teknik pemecahan masalah yang mangkus, namun teknik brute force dapat diterapkan pada sebagian besar
masalah. Agak sukar menunjukkan masalah yang tidak dapat dipecahkan dengan teknik brute force. Bahkan ada masalah yang hanya dapat dipecahkan secara brute force. Beberapa pekerjaan mendasar di dalam komputer dilakukan secara brute force, seperti menghitung jumlah dari n buah bilangan, mencari elemen terbesar di dalam tabel, dan sebagainya.
Selain itu, algoritma brute force seringkali lebih mudah diimplementasikandaripada algoritma yang lebih canggih, dan karena kesederhanaannya, kadang-kadang algoritma brute force dapat lebih mangkus (ditinjau dari segi implementasi).
b). kelebihan dan kekurangan brute force
Kelebihan: Metode brute force dapat digunakan untuk memecahkan hampir
sebagian besar masalah (wide applicability). Metode brute force sederhana dan mudah dimengerti. Metode brute force menghasilkan algoritma yang layak untuk
beberapa masalah penting seperti pencarian, pengurutan, pencocokan string, perkalian matriks.
Metode brute force menghasilkan algoritma baku (standard) untuk tugas-tugas komputasi seperti penjumlahan/perkalian n buah bilangan, menentukan elemen minimum atau maksimum di dalam tabel (list).
Kekurangan : Metode brute force jarang menghasilkan algoritma yang mangkus. Beberapa algoritma brute force lambat sehingga tidak dapat
diterima. Tidak sekontruktif/sekreatif teknik pemecahan masalah lainnya.
5. Tn = (n-1+n-2+n-3+....+n)Tn = -1 (1+2+3+....+n)Tn = -1. 1/2n(n-1)Tn = -1/2n(n-1)Tn = -1/2n2 + 1/2n
-1/2n2 + 1/2n ≤ ∈ O (n2)-1/2n2 + 1/2n ≤ -1/2n2 + 1/2n2 -1/2n2 + 1/2n ≤ 0C = 0no = 1n ≥ 1