1 / 37

Searching & Sorting

Searching & Sorting. Algoritma sorting yang akan dibahas: insertion sort merge sort two way merge sort quick sort heap sort Sorting secara ascending  kecil – besar desceding  besar – kecil. Insertion Sort (1). misal: 10 2 5 7 8 11 3 2 diurutkan ascending

devlin
Download Presentation

Searching & Sorting

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Searching & Sorting

  2. Algoritma sorting yang akan dibahas: • insertion sort • merge sort • two way merge sort • quick sort • heap sort • Sorting secara • ascending  kecil – besar • desceding  besar – kecil

  3. Insertion Sort (1) misal: 10 2 5 7 8 11 3 2 diurutkan ascending ------------------------------------------------------------------------------- Mulai dari i = 2 10 2 5 7 8 11 3 2 ^ 2 disisipkan pada lokasi: di depan 10 jadi: 2 10 5 7 8 11 3 2 ------------------------------------------------------------------------------- i = 3 2 10 5 7 8 11 3 2 ^ 5 disisipkan pada lokasi: di antara 2 dan 10 jadi: 2 5 10 7 8 11 3 2 ------------------------------------------------------------------------------- i = 4 2 5 10 7 8 11 3 2 ^ 7 disisipkan pada lokasi: di antara 5 dan 10 jadi: 2 5 7 10 8 11 3 2 Dan Seterusnya

  4. Insertion Sort (2) misal: 10 2 5 7 8 11 3 2 diurutkan ascending i=0 : - i=1 : -, 10 i=2 : -, 2, 10 i=3 : -, 2, 5, 10 i=4 : -, 2, 5, 7, 10 Dst. Diurutkan descending i=0 : + i=1 : +, 10 i=2 : +, 10, 2 i=3 : +, 10, 5, 2 i=4 : +, 10, 7, 5, 2 Dst.

  5. Merge 10 2 5 6 23 5 6 7 2 1 n = 10 SPLIT (berdasarkan hasil n div 2) (10 2 5 6 23 )( 5 6 7 2 1) n = 5 n = 5 (10 2 )( 5 6 23 )( 5 6 )( 7 2 1) n = 2 n = 3 n = 2 n = 3 ( 10 )( 2 )( 5 )( 6 23 )( 5 )( 6 )( 7 )( 2 1 ) n=1 n=1 n=1 n=2 n=1 n=1 n=1 n=2 ( 10 )( 2 )( 5 )( 6 )( 23 )( 5 )( 6 )( 7 )( 2 )( 1 ) MERGE (Berdasarkan urutan split) ( 10 )( 2 )( 5 )( 6 23 )( 5 )( 6 )( 7 )( 1 2 ) ( 2 10 ) ( 5 6 23 ) ( 5 6 ) ( 1 2 7 ) ( 2 5 6 10 23 )( 1 2 5 6 7 ) ( 1 2 2 5 5 6 6 7 10 23 )

  6. Two Way Merge Sort 10 2 5 6 23 5 6 7 2 1 (2,10) (5,6) (5,23) (6,7) (1,2) (2,5,6,10) (5,6,7,23) (1,2) (2,5,5,6,6,10,23) (1,2) (1,2,2,5,5,6,6,10,23)

  7. Quick Contoh : 5 4 3 1 3 5 7 1 5 Akan diurutkan secara Ascending Pilih data pertama sebagai Pivot kemudian letakkan semua angka yang lebih kecil di kiri dan yang lebih besar di kanan Kemudian lanjutkan untuk kedua belah sisi sampai semua telah menjadi pivot 4 3 1 3 1 | 5 | 5 7 5 3 1 3 1 | 4 | 5 | 5 | 5 7 1 1 | 3 | 3 | 4 | 5 | 5 | 5 | 7 1 | 1 | 3 | 3 | 4 | 5 | 5 | 5 | 7 1 | 1 | 3 | 3 | 4 | 5 | 5 | 5 | 7

  8. Radix Radix Sort : Sorting data yang memanfaatkan aplikasi linked-list Caranya : membagi data dalam beberapa kolom (pocket), selanjutnya mengurutkan data berdasarkan karakter pada posisi kolom terakhir sampai kolom pertama. Apabila maksimum jumlah digit dari data tersebut adalah “m”, maka ada m tahap pengurutan.

  9. Sorting menggunakan RADIX-SORT Contoh: 73, 65, 52, 77, 24, 83, 17, 35, 96, 62, 41, 87, 09, 11 Jumlah iterasi (m) = jumlah digit Gabungkan: 41, 11, 52, 62, 73, 83, 24, 65, 35, 96, 77, 17, 87, 09

  10. Sorting menggunakan RADIX-SORT • Iterasi Ke 2 • Gabungkan : 09, 11, 17, 24, 35, 41, 52, 62, 65, 73, 77, 83, 87, 96 (hasilnya)

  11. Heap • Diberikan input file • Lakukan insert data dalam binary tree • Lakukan sorting pada binary tree untuk masing-masing heap • Hasil sorting merupakan inisialisasi heap • Lakukan heap sort

  12. Insert Data Urutan data :7, 11, 4, 3, 25, 60, 41 Tree disusun berurutan, insert anak kiri dahulu Phase 1 : Buat Binary Tree 7 11 4 3 25 60 41

  13. Phase 2 : Inisialisasi/Building Heap Parent/root harus lebih besar daripada anak-anaknya 7 7 4 11 4 25 3 11 60 41 3 25 60 41

  14. Phase 2 : Inisialisasi/Building Heap Parent/root harus lebih besar daripada anak-anaknya 7 7 4 25 25 60 3 11 60 41 3 11 4 41

  15. Phase 2 : Inisialisasi/Building Heap Parent/root harus lebih besar daripada anak-anaknya 7 60 25 60 25 7 3 11 4 41 3 11 4 41

  16. Phase 2 : Inisialisasi/Building Heap Parent/root harus lebih besar daripada anak-anaknya 60 60 25 7 25 41 3 11 4 41 3 11 4 7 Kondisi Heap terpenuhi

  17. Phase 3 : Heap Sort / Removing Heap (Yang dihapus adalah root, sebagai gantinya adalah anak terbawah paling kanan) Heap Sort, i = 7, Sorting = { 60 } 60 7 25 41 25 41 3 11 4 7 3 11 4

  18. Phase 3 : Heap Sort Heap Sort, i = 7, Sorting = { 60 } 7 41 25 41 25 7 3 11 4 3 11 4

  19. Phase 3 : Heap Sort Heap Sort, i = 6, Sorting = { 60, 41 } 41 4 25 7 25 7 3 11 4 3 11

  20. Phase 3 : Heap Sort Heap Sort, i = 6, Sorting = { 60, 41 } 4 25 25 7 4 7 3 11 3 11

  21. Phase 3 : Heap Sort Heap Sort, i = 6, Sorting = { 60, 41 } 25 25 4 7 7 11 3 11 3 4

  22. Phase 3 : Heap Sort Heap Sort, i = 5, Sorting = { 60, 41, 25 } 4 25 7 7 11 11 3 4 3

  23. Phase 3 : Heap Sort Heap Sort, i = 5, Sorting = { 60, 41, 25 } 4 11 7 7 11 4 3 3

  24. Phase 3 : Heap Sort Heap Sort, i = 4, Sorting = { 60, 41, 25, 11 } 11 3 7 7 4 4 3

  25. Phase 3 : Heap Sort Heap Sort, i = 4, Sorting = { 60, 41, 25, 11 } 3 7 7 3 4 4

  26. Phase 3 : Heap Sort Heap Sort, i = 3, Sorting = { 60, 41, 25, 11, 7 } 3 7 3 4 4

  27. Phase 3 : Heap Sort Heap Sort, i = 3, Sorting = { 60, 41, 25, 11, 7 } 3 4 4 3

  28. Phase 3 : Heap Sort Heap Sort, i = 2, Sorting = { 60, 41, 25, 11, 7, 4 } 4 3 3

  29. Phase 3 : Heap Sort Heap Sort, i = 1, Sorting = { 60, 41, 25, 11, 7, 4, 3 } 3

  30. Phase 3 : Heap Sort Heap Sort, i = 0, Sorting = { 60, 41, 25, 11, 7, 4, 3 }

  31. Searching: • Algoritma Searching yag akan dibahas: • Binary Search Tree • Fibonacci Search Tree • Linier Interpolation

  32. Binary Search Tree • Kmid = (K1 + Kn) / 2 dibulatkan ke bawah (floor function) • Contoh: 2, 3, 4, 9, 11, 12, 13, 17, 18, 20, 24, 25, 27, 29, 30, 35, 37, 39, 40, 45 • Kmid = (1+20) / 2 = 10

  33. Binary Tree yang Terbentuk K10 K15 K18 K5 K12 K19 K16 K11 K13 K20 K17 K2 K7 K14 K8 K1 K3 K6 K9 K4

  34. Fibbonaci Search Tree • Fib = Fm + Fm+1 Barisan bilangan Fibbonaci: 1,1,2,3,5,8,13,21,34,55,… n=20 Maka yang diambil root adalah bilangan di bawah n atau sama dengan bil Fibbonaci, yaitu 13. Dibulatkan ke atas (ceiling function)

  35. Fibbonaci Search Tree K13 K18 K20 K8 K16 K15 K17 K19 K5 K11 K14 K7 K3 K10 K12 K6 K2 K4 K9 K1

  36. Linear Interpolation (y – yL) / (yu – yL) = (x – xL) / (xu – xL) (15 – 2) / (21 – 2) = (x – 1) / (9 – 1) x = (104/19) + 1 = 5,…. + 1 = 5 + 1 = 6

  37. Tugas Suatu file tidak terurut dengan key sebagai berikut: 5,7,8,3,2,1,6,9,15,14,12,13,11,4,10 Lakukan sort secara ascending dengan menggunakan : • Insertion Sort • Quick Sort • Two-way Merge Sort • Heap Sort • Radix Sort • Kemudian gambarkan pohon binernya (binary tree) yang menunjukkan algoritma penelusuran dari soal no. 1 dengan menggunakan: • BST • FST

More Related