06 Merge - Quick Sort

  3 sks By. Sri Rezeki Candra Nursari

  Materi Materi Pengantar Struktur Data Abstract Data Type (ADT) Rekursif : Fibonacci Sorting (Selection, Insertion, Bubble, Shell, Merge, Quick) Struktur Data Linier (Linked List, Stack, Queu) Struktur Data Hirarki (Tree, Graph, Hash Tables)

M erge Sort

  M et ode ini sering digunakan pada

pengurut an berkas. M ula-mula diberikan

dua kumpulan dat a yang sudah dalam keadaan t erurut . Kedua kumpulan dat a t ersebut harus dijadikan sat u t abel sehingga dalam keadaan t erurut

  (M etode Penggabungan) M erge Sort

  • Penggabungan ini digunakan pada pengurut an berkas
  • Syarat nya ada dua kumpulan dat a yang sudah dalam keadaan urut
  • Kedua kumpulan dat a t ersebut harus dijadikan sat u t abel sehingga dalam keadaan urut

  T1  2, 19, 26, 44, 65

  • M isalnya :

M erge Sort (M etode Penggabungan)

  • M isalnya : T1  65, 44, 26, 19, 2

  T2 22, 12, 5, 3

  (M etode Penggabungan) M erge Sort

  • Proses pengurut an dengan met ode penggabungan :

  1. M ula-mula diambil dat a pert ama dari T1, 2, dan dat a pert ama dari T2, yait u 3

  2. Dat a ini dibandingkan, kemudian yang lebih kecil dilet akkan sebagai dat a pert ama hasil hasil pengurut an, misalnya T3

  3. Jadi T3 akan memiliki sat u dat a, yait u 2

  

4. Dat a yang lebih besar, yait u 3, kemudian dibandingkan

dengan dat a kedua dari T1, yait u 19

  5. Karena lebih kecil, maka 3 dilet akkan sebagai dat a kedua dari

M erge Sort

  • Algorit manya sebagai berikut :

  1. i 

  1 2. j 

  1

  3. J3 

  1

  4. Kerjakan baris 5 s.d. 7 sampai (i > J1) at au (j > J2)

  5. J3  J3 +1

  6. Jika (T1[j] <T2[j]) maka T3[J3]  T1[i], i  i+1

  7. Jika (T1[j] >=T2[j]) maka T3[J3]  T2[j], j  j+1

  8. Jika (i > J) maka kerjakan baris 9, jika t idak dikerjakan baris 15 9. i  j

  10. Selama (i <= J2) kerjakan baris 11 s.d. 13

  11. J3  J3 + 1

  12. T3[J3]  T2[i] 13. i  i + 1

  14. Selesai 15. j  i

  

Pengurutan M erge Sort

  D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] Ta h a p : 1 T1

  2 1 9 2 6 4 4 6 5

  T2

  3 5 1 2 2 2

  T3

  T1

  1 9 2 6 4 4 6 5

  T2

  3 5 1 2 2 2

  

Pengurutan M erge Sort

  D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] Ta h a p : 3 T1

  1 9 2 6 4 4 6 5

  T2

  5 1 2 2 2

  T3

  2

  3

  T1

  1 9 2 6 4 4 6 5

  T2

  1 2 2 2

  

Pengurutan M erge Sort

  D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] Ta h a p : 5 T1

  1 9 2 6 4 4 6 5

  T2

  2 2

  T3

  2

  3 5 1 2 1 9

  Ta h a p : 6 T1

  2 6 4 4 6 5

  T2

  

Pengurutan M erge Sort

  D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] Ta h a p : 7 T1

  

4 4 6 5

  T2 T3

  2

  3 5 1 2 1 9 2 2 2 6 4 4

  Ak h ir T3

  2

  3 5 1 2 1 9 2 2 2 6 4 4 6 5

Quick Sort

  M embandingkan suat u elemen (disebut pivot ) dengan elemen yang lain dan menyusunnya sedemikian rupa sehingga elemen-elemen lain yang lebih kecil daripada pivot t ersebut t erlet ak di sebelah kirinya dan elemen- elemen lain yang lebih besar daripada pivot t ersebut

t erlet ak di sebelah kanannya. Sehingga dengan demikian

t elah t erbent uk dua sublist , yang t erlet ak di sebelah kiri dan kanan dari pivot . Lalu pada sublist kiri dan sublist kanan kit a anggap sebuah list baru dan kit a lakukan proses yang sama sepert i sebelumnya. Demikian

set erusnya sampai t idak t erdapat sublist lagi. Sehingga di

  (M etode Pengurutan Cepat) Quick Sort

  • Suat u met ode pengurut an yang membandingkan

    suat u elemen (pivot ) dengan elemen yang lain dan

    menyusunnya sedemikian rupa sehingga elemen

    yang lain yang lebih kecil daripada pivot t erlet ak

    disebelah kiri pivot sedangkan elemen yang lebih

    besar dari pivot dilet akkan disebelah kanan pivot

  • Sehingga dengan demikian t erbent uk dua sub list

    yait u yang t erlet ak disebelah kiri pivot dan sebelah kanan pivot

  (M etode Pengurutan Cepat) Quick Sort

  • List yang sebelah kiri pivot juga dit erapkan at uran

    sepert i pivot , yait u membandingkan elemen yang

    lainnya lagi, kalau lebih kecil dilet akkan sebelah kiri, kalau lebih besar dilet akkan disebelah kanan. Hal ini juga berlaku unt uk list yang let aknya disebelah kanan
  • Disebut juga dengan met ode part isi
  • Pada met ode quick jarak dari kedua elemen yang dit ukarkan dibuat cukup besar dengan t ujuan unt uk

  (M etode Pengurutan Cepat) Quick Sort

  • Proses pengurut an dengan met ode pengurut an cepat :

  2. Pivot ini harus dilet akkan pada posisi ke-j sedemikian hingga dat a ant ara 1 s.d. (j-1) lebih kecil daripada x, sedangkan dat a pada posisi ke (j+1) s.d. N lebeih besar dari pada x

  

3. Cara pengat urannya adalah menukarkan dat a

diant ara posisi 1 s.d. (j-1) yang lebih besar daripada

Quick Sort

  • Algorit manya sebagai berikut :

  1. x  Dat a[(L+R)/ 2)] 2. i  L 3. j R

  

  4. Selama (i <= j) kerjakan baris 5 s.d. 12

  5. Selama (Dat a[i] < x) kerjakan i  i+1

  6. Selama (Dat a[i] > x) kerjakan j  j-1

  7. Jika (I <= j) maka kerjakan baris 8 s.d. 10; jika t idak dikerjakan baris 11

  8. Tukar Dat a [i] dengan Dat a [j] 9. i i + 1 

  

Quick Sort

  • At au algorit manya yang lain mengat akan :

  1. Tent ukan data-data yang akan diurut kan dan disimpan dalam array

  2. Lakukan pengulangan dari data-data tersebut

  3. Data-data yang ada dibagi menjadi 2 bagian dimana bagian yang sat u dengan yang lain dilakukan proses pengecekan

  4. Pada bagian yang pertama, lakukan pembandingan antara data yang sat u dengan data yang lain, dimana kalau data yang sat u lebih kecil dari data yang lain, maka posisinya dit ukar. Kalau datanya lebih kecil diletakkan disebelah kiri, kalai datanya lebih besar diletakkan disebelah kanan. Hal ini berlaku pada bagian yang kedua

  5. Tampilkan data hasil pembandingan

  6. Ulangi langkah 4, sampai semua data dibandingkan

  

Pengurutan Quick Sort

  3

  65 L= 1 , R= 3

  1 2

  2 4 4

  26

  19

  22

  5

  65 L= 1 , R= 2

  5

  1 2

  2

  44

  26

  19

  22

  5

  3

  3

  22

  I t e r a si D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ]

  5 3 1 2

  Aw a l 6 5 2 4 4 2 6 1 9 2 2

  5 3 1 2 L= 1 , R= 9 6 5

  2

  44

  26

  19

  22

  L= 1 , R= 5 1 2

  19

  2

  44 26 1 9

  22

  5

  3

  65 L= 1 , R= 4

  1 2

  2 44 2 6

  65

  

Pengurutan Quick Sort

  5

  12

  65 L= 2 , R= 4

  2

  3

  44 2 6

  19

  22

  12

  22

  65 L= 2 , R= 3

  2

  3 4 4

  26

  19

  22

  5

  12

  5

  44 26 1 9

  I t e r a si D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ]

  L= 2 , R= 8

  Aw a l 2 1 2 4 4 2 6 1 9 2 2

  5 3 6 5 L= 2 , R= 9

  2 1 2

  44

  26

  19

  22

  5 3 6 5

  2 1 2

  3

  44

  26

  19

  22

  5

  3

  65 L= 2 , R= 5

  2

  65

  

Pengurutan Quick Sort

  22

  26 19 2 2

  12

  44

  65 L= 3 , R= 5

  2

  3

  5

  26 1 9

  12

  3

  44

  65 L= 3 , R= 4

  2

  3

  5 2 6

  19

  22

  12

  44

  5

  2

  I t e r a si D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ]

  2 3 4 4

  Aw a l 2 1 2 4 4 2 6 1 9 2 2

  5 3 6 5 L= 3 , R= 9

  2 3 4 4

  26

  19

  22

  5 12 6 5

  L= 3 , R= 8

  26

  65 L= 3 , R= 6

  19

  22 5 1 2

  65 L= 3 , R= 7

  2 3 1 2

  26

  19

  22

  5

  44

  65

  

Pengurutan Quick Sort

  3 5 2 6

  44

  26

  22

  3 5 1 2 1 9

  2

  65 L= 4 , R= 5

  44

  26

  3 5 1 2 19 2 2

  2

  65 L= 4 , R= 6

  44

  19 22 1 2

  2

  I t e r a si D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ]

  65 L= 4 , R= 7

  22 12 4 4

  19

  3 5 2 6

  2

  L= 4 , R= 8

  12 44 6 5

  22

  19

  3 5 2 6

  2

  5 3 6 5 L= 4 , R= 9

  Aw a l 2 1 2 4 4 2 6 1 9 2 2

  65

  

Pengurutan Quick Sort

  65 L= 5 , R= 7

  44

  26

  3 5 1 2 1 9 2 2

  2

  65 L= 5 , R= 6

  44

  3 5 1 2 1 9 22 2 6

  2

  22 26 4 4

  I t e r a si D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ]

  3 5 1 2 1 9

  2

  L= 5 , R= 8

  26 44 6 5

  22

  3 5 1 2 1 9

  2

  5 3 6 5 L= 5 , R= 9

  Aw a l 2 1 2 4 4 2 6 1 9 2 2

  65

  

Pengurutan Quick Sort

  3 5 1 2 1 9 2 2 26 4 4

  Aw a l 2 1 2 4 4 2 6 1 9 2 2

  65 I t e r a si D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ]

  44

  3 5 1 2 1 9 2 2 2 6

  2

  65 L= 6 , R= 7

  2

  I t e r a si D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ]

  L= 6 , R= 8

  26 44 6 5

  3 5 1 2 1 9 2 2

  2

  5 3 6 5 L= 6 , R= 9

  Aw a l 2 1 2 4 4 2 6 1 9 2 2

  5 3 6 5

  

Pengurutan Quick Sort

  I t e r a si D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ]

  Aw a l 2 1 2 4 4 2 6 1 9 2 2

  5 3 6 5 L= 8 , R= 9

  2

  3 5 1 2 1 9 2 2 2 6 4 4 6 5 I t e r a si D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ]

  Ak h ir

  2

  3 5 1 2 1 9 2 2 2 6 4 4 6 5