Professional Documents
Culture Documents
Pertemuan 11
Contents
3
1 Decrease and Conquer
2
Decrease and Conquer
1. Mengurangi permasalahan menjadi lebih kecil
pada permasalahan yang sama
2. Selesaikan permasalahan yang lebih kecil
tersebut
3. Kembangkan permasalahan yang lebih kecil
itu sehingga menyelesaikan permasalahan
sebenarnya
4. Dapat dilakukan dengan dengan metode top
down atau bottom up
3
Permasalahan eksponensial: Hitung xn
T(n) = 2*T(n/2) + 1
Divide and Conquer: = n-1
constant factor:
= log 2 n when a = 2
4
Insertion sort
To sort array A[0..n-1], sort A[0..n-2] recursively
and then insert A[n-1] in its proper place among
the sorted A[0..n-2]
6
7
8
Kompleksitas waktu algoritma Insertion Sort:
Penyelesaian:
T(n) = cn + T(n – 1)
= cn + { c ⋅ (n – 1) + T(n – 2) }
= cn + c(n – 1) + { c ⋅ (n – 2) + T(n – 3) }
= cn + c ⋅ (n – 1) + c ⋅ (n – 2) + {c(n – 3) + T(n – 4) }
= ...
= cn+c⋅(n–1)+c(n–2)+c(n–3)+...+c2+T(1)
= c{ n + (n – 1) + (n – 2) + (n – 3) + ... + 2 } + a
= c{ (n – 1)(n + 2)/2 } + a
= cn2/2+cn/2 +(a–c)
= O(n2)
9
Selection Sort
Algoritma sorting
Sorting perbandingan pada element
Terbagi menjadi 2 :
Sorted list
Sisa himpunan yang belum tersorting
10
Selection sort
11
12
• Misalkan tabel A berisi elemen-elemen berikut:
13
Kompleksitas waktu algoritma:
14
Depth-First Search (DFS)
Mengunjungi vertex-vertex pada grafik dengan selalu
bergerak dari vertex yang terakhir dikunjungi ke vertex
yang belum dikunjungi, lakukan backtrack apabila tidak
ada vertex tetangga yang belum dikunjungi.
15
Pseudo code DFS
16
Example: DFS traversal of undirected graph
a b c d
e f g h
2 3
4 5 6 7
8
1
2 3
4 5 6 7
8
1
2 3 4
5 6 7
8 9
Breadth-first search (BFS)
Mengunjungi vertex-vertex grafik dengan berpindah ke
semua vertex tetangga dari vertex yang terakhir
dikunjungi.
22
Example of BFS traversal of undirected
graph
a b c d
e f g h
s 5 7
3 6 9
26
Breadth First Search
1
Shortest path
2 4 8
from s
0 s 5 7
3 6 9
Undiscovered
Discovered Queue: s
Top of queue
Finished
27
Breadth First Search
1
2 4 8
0 s 5 7
3 6 9
Undiscovered
Discovered Queue: s 2
Top of queue
Finished
28
Breadth First Search
1
2 4 8
0 s 5 7
1
3 6 9
Undiscovered
Discovered Queue: s 2 3
Top of queue
Finished
29
Breadth First Search
1
2 4 8
0 s 5 7
1
3 6 9
Undiscovered
Discovered Queue: s 2 3 5
Top of queue
Finished
30
Breadth First Search
1 2
2 4 8
0 s 5 7
1
3 6 9
Undiscovered
Discovered Queue: 2 3 5
Top of queue
Finished
31
Breadth First Search
1 2
2 4 8
5 already discovered:
0 s 5 7
don't enqueue
1
3 6 9
Undiscovered
Discovered Queue: 2 3 5 4
Top of queue
Finished
32
Breadth First Search
1 2
2 4 8
0 s 5 7
1
3 6 9
Undiscovered
Discovered Queue: 2 3 5 4
Top of queue
Finished
33
Breadth First Search
1 2
2 4 8
0 s 5 7
1
3 6 9
Undiscovered
Discovered Queue: 3 5 4
Top of queue
Finished
34
Breadth First Search
1 2
2 4 8
0 s 5 7
1
3 6 9
1 2
Undiscovered
Discovered Queue: 3 5 4
Top of queue
Finished
35
Breadth First Search
1 2
2 4 8
0 s 5 7
1
3 6 9
1 2
Undiscovered
Discovered Queue: 3 5 4 6
Top of queue
Finished
36
Breadth First Search
1 2
2 4 8
0 s 5 7
1
3 6 9
1 2
Undiscovered
Discovered Queue: 5 4 6
Top of queue
Finished
37
Breadth First Search
1 2
2 4 8
0 s 5 7
1
3 6 9
1 2
Undiscovered
Discovered Queue: 5 4 6
Top of queue
Finished
38
Breadth First Search
1 2
2 4 8
0 s 5 7
1
3 6 9
1 2
Undiscovered
Discovered Queue: 4 6
Top of queue
Finished
39
Breadth First Search
1 2 3
2 4 8
0 s 5 7
1
3 6 9
1 2
Undiscovered
Discovered Queue: 4 6
Top of queue
Finished
40
Breadth First Search
1 2 3
2 4 8
0 s 5 7
1
3 6 9
1 2
Undiscovered
Discovered Queue: 4 6 8
Top of queue
Finished
41
Breadth First Search
1 2 3
2 4 8
0 s 5 7
1 3
3 6 9
1 2
Undiscovered
Discovered Queue: 6 8
Top of queue
Finished
42
Breadth First Search
1 2 3
2 4 8
0 s 5 7
1 3
3 6 9
1 2 3
Undiscovered
Discovered Queue: 6 8 7
Top of queue
Finished
43
Breadth First Search
1 2 3
2 4 8
0 s 5 7
1 3
3 6 9
1 2 3
Undiscovered
Discovered Queue: 6 8 7 9
Top of queue
Finished
44
Breadth First Search
1 2 3
2 4 8
0 s 5 7
1 3
3 6 9
1 2 3
Undiscovered
Discovered Queue: 8 7 9
Top of queue
Finished
45
Breadth First Search
1 2 3
2 4 8
0 s 5 7
1 3
3 6 9
1 2 3
Undiscovered
Discovered Queue: 7 9
Top of queue
Finished
46
Breadth First Search
1 2 3
2 4 8
0 s 5 7
1 3
3 6 9
1 2 3
Undiscovered
Discovered Queue: 7 9
Top of queue
Finished
47
Breadth First Search
1 2 3
2 4 8
0 s 5 7
1 3
3 6 9
1 2 3
Undiscovered
Discovered Queue: 7 9
Top of queue
Finished
48
Breadth First Search
1 2 3
2 4 8
0 s 5 7
1 3
3 6 9
1 2 3
Undiscovered
Discovered Queue: 7 9
Top of queue
Finished
49
Breadth First Search
1 2 3
2 4 8
0 s 5 7
1 3
3 6 9
1 2 3
Undiscovered
Discovered Queue: 9
Top of queue
Finished
50
Breadth First Search
1 2 3
2 4 8
0 s 5 7
1 3
3 6 9
1 2 3
Undiscovered
Discovered Queue: 9
Top of queue
Finished
51
Breadth First Search
1 2 3
2 4 8
0 s 5 7
1 3
3 6 9
1 2 3
Undiscovered
Discovered Queue: 9
Top of queue
Finished
52
Breadth First Search
1 2 3
2 4 8
0 s 5 7
1 3
3 6 9
1 2 3
Undiscovered
Discovered Queue:
Top of queue
Finished
53
Breadth First Search
1 2 3
2 4 8
0 s 5 7
1 3
3 6 9
1 2 3
Level Graph
54
55
Latihan: Gunakan algoritma BFS dan DFS untuk
menemukan pohon merentang (spanning tree) dari graf
G di bawah ini jika traversalnya dimulai dari simpul k.
Dalam menjawab soal ini, perlihatkan traversal
BFS/DFS sebagai pohon berakar dengan e sebagai
akarnya.
56
Binary Search Tree
largest) key
57
Binary Search Tree
58
59
60
61
Bagaimana spider menjelajahi (surfing) web?