019 Form Soal UTS ALGOL 2020 Kamis
019 Form Soal UTS ALGOL 2020 Kamis
: FST-AKM-FR-019
No Bobot
Pertanyaan
. Nilai
I. SOAL
1.Tunjukkan bahwa (n+b)b = (nb), untuk setiap bilangan konstan real a dan b, b>0.
2.Buktikan bahwa running time dari suatu algoritma adalah (g(n)) jika dan hanya
jika worstcase running time-nya adalah O(g(n)) dan bestcase running time-nya
adalah (g(n)).
5.Gambarlah recursion tree untuk T(n) = 4T( n/2) + n dan buktikan bahwa batas
asimtotik ketat (tight asymptotic bounds) adalah solusinya.
Jelaskan secara manual contoh proses Heap Sort dibawah ini, Buatlah Flowchartnya
sesuai dengan pseudocode yang ada serta implementasi source codenya!,. Berikan
contoh kasus penggunaan Algoritma Heap Sort?
UNIVERSITAS ISLAM NEGERI No. Dok. : FST-AKM-FR-019
1. /*
2. * C++ Program to Implement Heap Sort
3. */
4. #include <iostream>
5. #include <conio.h>
6. using namespace std;
7. void max_heapify(int *a, int i, int n)
8. {
9. int j, temp;
10. temp = a[i];
11. j = 2*i;
12. while (j <= n)
13. {
14. if (j < n && a[j+1] > a[j])
15. j = j+1;
16. if (temp > a[j])
17. break;
18. else if (temp <= a[j])
19. {
20. a[j/2] = a[j];
21. j = 2*j;
22. }
23. }
24. a[j/2] = temp;
25. return;
26. }
27. void heapsort(int *a, int n)
28. {
29. int i, temp;
30. for (i = n; i >= 2; i--)
31. {
32. temp = a[i];
UNIVERSITAS ISLAM NEGERI No. Dok. : FST-AKM-FR-019
Jelaskan secara manual Algoritma Stressen Matrix Multiply dibawah ini, Buatlah
Flowchartnya sesuai dengan pseudocode yang ada serta implementasi source
codenya!,. Berikan contoh kasus penggunaan Algoritma Stressen?
UNIVERSITAS ISLAM NEGERI No. Dok. : FST-AKM-FR-019
IV.
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define M 2
#define N (1<<M)
// set A[a] = I
UNIVERSITAS ISLAM NEGERI No. Dok. : FST-AKM-FR-019
// set A[a] = k
void set(mat A, corners a, datatype k){
int i,j;
for(i=a.ra;i<a.rb;i++)
for(j=a.ca;j<a.cb;j++)
A[i][j] = k;
}
// Print A[a]
void print(mat A, corners a, char *name) {
int i,j;
printf("%s = {\n",name);
for(i=a.ra;i<a.rb;i++){
for(j=a.ca;j<a.cb;j++)
printf(DATATYPE_FORMAT ", ", A[i][j]);
printf("\n");
}
printf("}\n");
}
if (n==1) {
C[c.ra][c.ca] += A[a.ra][a.ca] * B[b.ra][b.ca];
return;
}
p.ra = p.ca = 0;
p.rb = p.cb = m/2;
// P0 + P3 - P4 + P6 = S - P4 + P6 = T + P6 = C00
add(P[0], P[3], S, p, p, p);
sub(S, P[4], T, p, p, p);
add(T, P[6], C, p, p, cii[0][0]);
// P2 + P4 = C01
add(P[2], P[4], C, p, p, cii[0][1]);
// P1 + P3 = C10
add(P[1], P[3], C, p, p, cii[1][0]);
// P0 + P2 - P1 + P5 = S - P1 + P5 = T + P5 = C11
add(P[0], P[2], S, p, p, p);
sub(S, P[1], T, p, p, p);
add(T, P[5], C, p, p, cii[1][1]);
}
int main() {
mat A, B, C;
corners ai = {0,N,0,N};
corners bi = {0,N,0,N};
corners ci = {0,N,0,N};
srand(time(0));
// identity(A,bi); identity(B,bi);
// set(A,ai,2); set(B,bi,2);
randk(A,ai, 0, 2); randk(B,bi, 0, 2);
print(A, ai, "A"); print(B, bi, "B");
set(C,ci,0);
// add(A,B,C, ai, bi, ci);
UNIVERSITAS ISLAM NEGERI No. Dok. : FST-AKM-FR-019
SOAL KASUS - B
V.
Contoh dan Jawaban Kasus 1 dibawah ini, Kemudian Jawab Soal Kasus 2
Kasus 1
C(n) COP
Read n A
:= n+3 B
* 2n C
+ 2n D
Tn=Cop+C(n)
Tn = na+(n+3)b+2nc+2nd
UNIVERSITAS ISLAM NEGERI No. Dok. : FST-AKM-FR-019
Kasus 2
Algoritma Menghitung Faktorial
procedure menghitung_faktorial
Kamus
x, a, faktorial : integer
Algoritma
read(x)
a←1
faktorial ← 1
while a <= x do
begin
faktorial ← faktorial * a
a ←a+1
end
write(Faktorial dari ,x, adalah : ,faktorial)
endprocedure
Mencari T(n)
n = 7; W = 15; (w1, w2, w3, w4, w5, w6, w7) = (5, 7, 3, 6, 4, 3, 4); (b1, b2, b3, b4,
b5, b6, b7) = (34, 16, 21, 57, 32, 24, 15)
n = 8; W = 9; (w1, w2, w3, w4, w5, w6, w7) = (5, 2, 3, 2, 6, 2, 4, 3); (b1, b2, b3, b4,
b5, b6, b7) = (32, 59, 30, 17, 81, 16, 39, 25)
VII
.
========Selamat Mengerjakan========