Anda di halaman 1dari 5

SOLUSI HOMEWORK-1: STRATEGI DIVIDE & CONQUER

CII2K3 STRATEGI ALGORITMA/EAR/GENAP 2020-2021

PERSOALAN 1:
Diketahui suatu array bilangan integer sebagai berikut:
123 34 189 56 150 12 9 240

Tunjukkan bagaimana algoritma Mergesort mengurutkan array tersebut sehingga didapatkan array yang
berisi bilangan integer yang terurut secara menaik (ascending).
Tunjukkan pula contoh mekanisme yang terjadi saat tahap merging.

SOLUSI:

123 34 189 56 150 12 9 240


DIVIDE, CONQUER:
123 34 189 56 150 12 9 240

123 34 189 56 150 12 9 240

123 34 189 56 150 12 9 240

MERGE:
34 123 56 189 12 150 9 240

34 56 123 189 9 12 150 240

9 12 34 56 123 150 189 240

Mekanisme saat MERGING:


A1 A2 Hasil merging
1 34 56 123 189 9 12 150 240 34 > 9 →9 9
2 34 56 123 189 9 12 150 240 34>12 → 12 9 12
3 34 56 123 189 9 12 150 240 34<150 → 34 9 12 34
4 34 56 123 189 9 12 150 240 56<150 → 56 9 12 34 56
5 34 56 123 189 9 12 150 240 123<150 → 123 9 12 34 56 123
6 34 56 123 189 9 12 150 240 189>150 → 150 9 12 34 56 123 150
7 34 56 123 189 9 12 150 240 189<240 → 189 9 12 34 56 123 150 189
8 34 56 123 189 9 12 150 240 240 → 240 9 12 34 56 123 150 189 240

1|P a g e
SOLUSI HOMEWORK-1: STRATEGI DIVIDE & CONQUER
CII2K3 STRATEGI ALGORITMA/EAR/GENAP 2020-2021

PERSOALAN 2:
Diketahui suatu array bilangan integer sebagai berikut:
123 34 189 56 150 12 9 240

Tunjukkan bagaimana algoritma Quicksort mengurutkan array tersebut sehingga didapatkan array yang
berisi bilangan integer yang terurut secara menaik (ascending) dengan menggunakan nilai pivot:
a. 123
b. 240

SOLUSI:
Quicksort dengan pivot 123

123 34 189 56 150 12 9 240


PARTISI
pivotitem=123
i j S[1] S[2] S[3] S[4] S[5] S[6] S[7] S[8]
- - 123 34 189 56 150 12 9 240 ← initial values
2 1 123 34 189 56 150 12 9 240
3 2 123 34 189 56 150 12 9 240
4 3 123 34 189 56 150 12 9 240
5 3 123 34 56 189 150 12 9 240
6 4 123 34 56 189 150 12 9 240
7 5 123 34 56 12 150 189 9 240
8 5 123 34 56 12 9 189 150 240 ← pivotpoint=S[5]
- 5 9 34 56 12 123 189 150 240 ← tukar S[5] dengan pivotitem

PARTISI pada subarrray kiri PARTISI pada subarrray kanan


i j S[1] S[2] S[3] S[4] i j S[1] S[2] S[3]
- - 9 34 56 12 - - 189 150 240
2 1 9 34 56 12 2 1 189 150 240
3 1 9 34 56 12 3 2 189 150 240 ← pivotpoint =S[2]
4 1 9 34 56 12 - 2 150 189 240 ← tukar S[2] dengan pivotitem
array tidak perlu dipartisi lagi
PARTISI {150, 189, 240}
i j S[1] S[2] S[3]
- - 34 56 12
2 1 34 56 12
3 2 34 56 12
- 2 34 12 56 ← pivotpoint=S[2]
- 2 12 34 56 ← tukar S[2] dengan pivotitem

{12, 34, 56}

{9,12,34,56} {123} {150, 189, 240}

{9,12,34,56,123,150,189,240} ← sorted array

2|P a g e
SOLUSI HOMEWORK-1: STRATEGI DIVIDE & CONQUER
CII2K3 STRATEGI ALGORITMA/EAR/GENAP 2020-2021

PERSOALAN 3:
Diketahui suatu array bilangan integer sebagai berikut:
123 34 189 56 150 12 9 240

Tunjukkan bagaimana penerapan strategi Divide & Conquer untuk mencari nilai maksimum dan
minimum pada array di atas.

SOLUSI:
Mekanisme DIVIDE

Mekanisme SOLVE & COMBINE


Solusi dinyatakan dalam {max, min}

3|P a g e
SOLUSI HOMEWORK-1: STRATEGI DIVIDE & CONQUER
CII2K3 STRATEGI ALGORITMA/EAR/GENAP 2020-2021

PERSOALAN 4:
Tunjukkan bagaimana algoritma Binary Search untuk mencari integer 120 pada array berikut:
12 34 37 45 57 82 99 120 134

SOLUSI:
Nilai yang dicari, x=120.
Array berukuran 9. Elemen tengah adalah elemen ke-5, yaitu 57.

12 34 37 45 57 82 99 120 134

Bandingkan x dengan elemen tengah tsb. Karena x lebih besar dibanding 57, maka pencarian berlanjut ke
array sebelah kanan {82, 99, 120, 134}

82 99 120 134

Pencarian berikutnya pada elemen tengah pada array tsb. Bandingkan x dengan elemen tengah yaitu 99.
Karena lebih kecil dibanding x, maka pencarian berikutnya berlanjut ke array sebelah kanan.

120 134
Array berukuran n=2, maka elemen tengah didapat pada elemen ke-1, yaitu 120.
Bandingan x dengan 120, selanjutnya nyatakan bahwa x ada pada array karena x=120.

PERSOALAN 5:
a. Buat pseudocode untuk mencari posisi dari elemen terbesar dari suatu array yang berisi bilangan
sejumlah n, menggunakan strategi Divide and Conquer. Asumsikan bahwa array berisi bilangan
yang tidak terurut.

b. Bangun relasi rekurens untuk operasi perbandingan dari pseudocode tsb. Selanjutnya
selesaikan relasi rekurensi tersebut (cari order of growth-nya). Anda dapat menggunakan
Teorema Master untuk mencari solusi dari relasi rekurens yang Anda bangun.

c. Jika diberikan array sebagai berikut, tunjukkan bagaimana penerapan strategi Divide & Conquer
untuk mencari posisi dari elemen terbesar!

123 34 189 56 150 12 9 240

SOLUSI:
Relasi rekurens:

 0 ,n =1

T (n) =  1 ,n = 2
2T ( n / 2) + 2 , n  2

4|P a g e
SOLUSI HOMEWORK-1: STRATEGI DIVIDE & CONQUER
CII2K3 STRATEGI ALGORITMA/EAR/GENAP 2020-2021

Menggunakan teorema master, didapatkan 𝑇(𝑛) ∈ 𝜃(𝑛𝑙𝑜𝑔2 2 ) → 𝑇(𝑛) ∈ 𝜃(𝑛)

Mencari posisi elemen terbesar dari array berikut:


123 34 189 56 150 12 9 240
Mekanisme DIVIDE

Mekanisme SOLVE & COMBINE


Solusi dinyatakan dalam {max, location}

5|P a g e

Anda mungkin juga menyukai