download

Matakuliah
Tahun
: T0456 / Algoritma dan Metode Object
Oriented Programming
: 2007
Quick sort
Pertemuan 12
Learning Outcomes
Pada akhir pertemuan ini, diharapkan:
Mahasiswa dapat menggunakan algoritma quick sort untuk
mengurutkan data.
Buku Referensi:
Algorithms in C++, Addison Wesley, 1992.
Websites:
http://www.deitel.com
3
Bina Nusantara
Outline Materi
• Algoritma quick sort
• Simulasi algoritma quick sort
• Contoh program
4
Bina Nusantara
Quick sort
Bekerja dengan memartisi data menjadi 2 bagian
sehingga:
a[kiri], a[kiri+1], …, a[i-1] < a[i]
a[i] berada pada posisi yang tepat
a[i+1], a[i+2], …, a[kanan] > a[i]
[kiri]
12
Bina Nusantara
[kiri+1]
…
[i-1]
[i]
[i+1]
…
…
45
69
84
…
[kanan]
70
[0]
73
[1]
[2]
79
76
[3]
[5]
[4]
Quick
sort
(0,8)[6]
72
75
78
J=1
71
[7]
[8]
77
74
K=6
Tukar
73
71
76
J=2
72
75
78
79
77
74
75
78
79
77
74
K=3
Tukar
73
71
72
76
J=3
K=2
Tukar
QS(0,1)
QS(3,8)
72
Bina Nusantara
71
73
76
75
78
79
77
74
Quick sort (0,1)
[0]
72
[1]
[2]
71
73
[3]
76
[4]
[5]
[6]
[7]
[8]
75
78
79
77
74
75
78
79
77
74
J=2
K=1
Tukar
71
Bina Nusantara
72
73
76
Quick sort (3,8)
[0]
71
[1]
[2]
72
73
[3]
76
[4]
75
[5]
78
[6]
[7]
[8]
79
77
74
J=5
K=8
Tukar
71
72
73
76
75
74
79
77
78
77
78
J=6
K=5
Tukar
71
72
73
74
QS(3,4)
Bina Nusantara
75
76
79
QS(6,8)
Quick sort (3,4)
[0]
71
[1]
[2]
72
73
[3]
74
[4]
75
[5]
[6]
[7]
[8]
76
79
77
78
76
79
77
78
J=4
K=3
71
Bina Nusantara
72
73
74
75
Quick sort (6,8)
[0]
71
[1]
[2]
72
73
[3]
74
[4]
75
[5]
76
[6]
[7]
[8]
79
77
78
J=…
K=8
Tukar
71
72
73
74
75
76
78
QS(6,7)
Bina Nusantara
77
79
Quick sort (6,7)
[0]
71
[1]
[2]
72
73
[3]
74
[4]
75
[5]
76
[6]
[7]
[8]
78
77
79
J=8
K=7
Tukar
71
72
73
74
75
76
77
QS(6,6)
Bina Nusantara
78
79
Quick sort (6,6)
[0]
71
[1]
[2]
72
73
[3]
74
[4]
75
[5]
76
[6]
[7]
[8]
77
78
79
J=…
K=6
71
Bina Nusantara
72
73
74
75
76
77
78
79
Void QS (int *Dt, int Kr, int Kn){
int i, j, k;
if (Kr<Kn) {
j = Kr;
k = Kn+1;
do {
do j++; while (Dt[j]<Dt[Kr]);
do k--; while (Dt[k]>Dt[Kr]);
if (j<k) tukar (&Dt[j], &Dt[k]);
} while (j<=k);
tukar (&Dt[Kr], &Dt[k]);
QS (Dt, Kr, k-1);
QS (Dt, k+1, Kn);
}
Quick sort
Bina Nusantara
Diskusi dan Tanya Jawab
Latihan soal
14
Bina Nusantara