My first Magazine pemrograman-kompetitif-dasar | Page 6
Daftar Isi
5 Divide and Conquer
5.1 Konsep Divide and Conquer . . . . . . . . . . . .
5.2 Studi Kasus 1: Merge Sort . . . . . . . . . . . .
5.2.1 Contoh Eksekusi Merge Sort . . . . . . .
5.2.2 Menggabungkan Dua Array yang Terurut
5.2.3 Implementasi Merge Sort . . . . . . . . .
5.3 Studi Kasus 2: Quicksort . . . . . . . . . . . . .
5.3.1 Partisi Quicksort . . . . . . . . . . . . . .
5.3.2 Implementasi Quicksort . . . . . . . . . .
5.3.3 Pemilihan Pivot . . . . . . . . . . . . . . .
5.4 Studi Kasus 3: Mencari Nilai Terbesar . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 42
42
43
43
45
47
49
49
52
54
54
6 Greedy
6.1 Konsep Greedy . . . . . . . . . . . . .
6.2 Menemukan Subpersoalan . . . . . . .
6.3 Greedy Choice . . . . . . . . . . . . .
6.4 Penyelesaian dengan Teknik Greedy .
6.5 Permasalahan pada Algoritma Greedy
6.6 Pembuktian Greedy . . . . . . . . . . .
.
.
.
.
. .
.
.
.
.
. .
.
.
.
.
. .
.
.
.
.
. .
.
.
.
.
. .
.
.
.
.
. .
.
.
.
.
. .
.
.
.
.
. .
.
.
.
.
. .
.
.
.
.
. .
.
.
.
.
. .
.
.
.
.
. .
.
.
.
.
. .
.
.
.
.
. .
.
.
.
.
. .
.
.
.
.
. .
.
.
.
.
. .
.
.
.
.
. .
.
.
.
.
. .
.
.
.
.
. .
.
.
.
.
. .
.
.
.
.
. .
.
.
.
.
. .
.
.
.
.
. 56
56
56
57
58
60
61
7 Dynamic Programming
7.1 Konsep Dynamic Programming . . . .
7.1.1 Top-down . . . . . . . . . . .
7.1.2 Bottom-up . . . . . . . . . . .
7.2 Contoh-contoh DP Sederhana . . . . .
7.2.1 Knapsack . . . . . . . . . . . .
7.2.2 Coin Change . . . . . . . . . .
7.2.3 Longest Common Subsequence
7.2.4 Memotong Kayu . . . . . . . . .
.
.
.
.
.
.
. .
.
.
.
.
.
.
. .
.
.
.
.
.
.
. .
.
.
.
.
.
.
. .
.
.
.
.
.
.
. .
.
.
.
.
.
.
. .
.
.
.
.
.
.
. .
.
.
.
.
.
.
. .
.
.
.
.
.
.
. .
.
.
.
.
.
.
. .
.
.
.
.
.
.
. .
.
.
.
.
.
.
. .
.
.
.
.
.
.
. .
.
.
.
.
.
.
. .
.
.
.
.
.
.
. .
.
.
.
.
.
.
. .
.
.
.
.
.
.
. .
.
.
.
.
.
.
. .
.
.
.
.
.
.
. .
.
.
.
.
.
.
. .
.
.
.
.
.
.
. .
.
.
.
.
.
.
. .
.
.
.
.
.
.
. .
.
.
.
.
.
.
. 62
62
62
65
68
68
72
74
76
8 Struktur Data Dasar
8.1 Dynamic Array . . . . . . . . . . . .
8.1.1 Aplikasi Dynamic Array . . .
8.1.2 Implementasi Dynamic Array
8.2 Stack . . . . . . . . . . . . . . . . .
8.2.1 Aplikasi Stack . . . . . . . .
8.2.2 Implementasi Stack . . . . .
8.3 Queue . . . . . . . . . . . . . . . . .
8.3.1 Aplikasi Queue . . . . . . . .
8.3.2 Implementasi Queue . . . . .
.
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. 80
80
82
82
83
84
85
87
87
87
9 Perkenalan Graf
9.1 Konsep Graf . . . . . . . . . . . . . .
9.2 Jenis Graf . . . . . . . . . . . . . . . .
9.2.1 Tree . . . . . . . . . . . . . . .
9.2.2 Directed Acyclic Graph . . . .
9.3 Representasi Graf pada Pemrograman
9.3.1 Adjacency Matrix . . . . . . . .
9.3.2 Adjacency List . . . . . . . . .
9.3.3 Edge List . . . . . . . . . . . .
9.4 Perbandingan Representasi Graf . . . .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
. 89
89
90
91
93
93
93
94
95
96
iv