Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

1 Pertemuan 23 Radix Sort Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5.

Presentasi serupa


Presentasi berjudul: "1 Pertemuan 23 Radix Sort Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5."— Transcript presentasi:

1 1 Pertemuan 23 Radix Sort Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5

2 2 Learning Outcomes Pada akhir pertemuan ini, diharapkan: Mahasiswa dapat Menjelaskan kembali algoritma Radix sort

3 3 Outline Materi Algoritma Radix Sort Penerapan Radix Sort

4 4 Sorting Sorting merupakan proses mengurutkan data sesuai aturan tertentu: Ascending: dari terkecil sampai terbesar Descending: dari terbesar sampai terkecil Tujuan sorting adalah untuk mempercepat proses pencarian (searching) data

5 5 Sorting Teknik pengurutan sederhana: Bubble sort Selection sort Insertion sort Teknik pengurutan lanjut: Quick sort Merge sort Radix sort

6 6 RadixSort Radix sort mengurutkan data berdasarkan posisi digit dalam angka atau karakter dalam string. Pengurutan bisa dilakukan dari posisi digit terakhir/terkanan (LSD-least significant digit) atau digit awal/terkiri (MSD-Most significant digit). Radix sort digunakan untuk mengurutkan data sebagai kelompok karakter atau string.

7 7 RadixSort Sebagai gambaran radix sort dapat digunakan untuk mengurutkan string sebagai berikut: ABC, XYZ, BWZ, AAC, RLT, JBX, RDT, KLT, AEO, TLJ Untuk mengurutkannya pertama diurutkan berdasarkan karakter terakhir pada string dan dikelompokkan berdasarkan karakter tersebut. (ABC, AAC) (TLJ) (AEO) (RLT, RDT, KLT) (JBX) (XYZ, BWZ) Kombinasikan hasil pengelompokan: ABC, AAC, TLJ, AEO, RLT, RDT, KLT, JBX, XYZ, BWZ

8 8 RadixSort Selanjutnya kelompokkan berdasarkan urutan abjad karater yang tengah (AAC) (ABC, JBX) (RDT) (AEO) (TLJ, RLT, KLT) (BWZ) (XYZ) Kombinasikan kembali hasilnya: AAC, ABC, JBX, RDT, AEO, TLJ, RLT, KLT, BWZ, XYZ Kemudian kelompokan berdasarkan abjad pertama dari string, diperoleh: (AAC, ABC, AEO) (BWZ) (JBX) (KLT) (RLT, RDT) (TLJ) (XYZ) Terakhir gabungkan hasil pengelompokan sehingga diperoleh: AAC, ABC, AEO, BWZ, JBX, KLT, RLT, RDT, TLJ, XYZ

9 9 RadixSort Disamping itu radix sort dapat juga digunakan untuk mengurutkan bilangan. Contoh, Radix sort pada array suatu bilangan 4 digit bilangan interger: Data awal: 0123, 2154, 0222, 0004, 0283, 1560, 1061, 2150

10 10 RadixSort Sort berdasarkan digit terakhir: [0] – (1560, 2150) [1] – (1061) [2] – (0222) [3] – (0123, 0283) [4] – (2154, 0004) [5] – ( ) [6] – ( ) [7] – ( ) [8] – ( ) [9] – ( ) Kombinasikan hasilnya dan tulis ke penampung awal: 1560, 2150, 1061, 0222, 0123, 0283, 2154, 0004

11 11 RadixSort Sort berdasarkan digit kedua dari kanan: [0] – (0004) [1] – ( ) [2] – (0222, 0123) [3] – ( ) [4] – ( ) [5] – (2150, 2154) [6] – (1560, 1061) [7] – ( ) [8] – (0283) [9] – ( ) Kombinasikan hasilnya dan tulis ke penampung awal: 0004, 0222, 0123, 2150, 2154, 1560, 1061, 0283

12 12 RadixSort Sort berdasarkan digit ketiga dari kanan: [0] – (0004, 1061) [1] – (0123, 2150, 2154) [2] – (0222, 0283) [3] – ( ) [4] – ( ) [5] – (1560) [6] – ( ) [7] – ( ) [8] – ( ) [9] – ( ) Kombinasikan hasilnya dan tulis ke penampung awal: 0004, 1061, 0123, 2150, 2154, 0222, 0283, 1560

13 13 RadixSort Sort berdasarkan digit ke empat dari kanan: [0] – (0004, 0123, 0222, 0283) [1] – (1061, 1560) [2] – (2150, 2154) [3] – ( ) [4] – ( ) [5] – ( ) [6] – ( ) [7] – ( ) [8] – ( ) [9] – ( ) Kombinasikan hasilnya dan tulis ke penampung awal: 0004, 0123, 0222, 0283, 1061, 1560, 2150, 2154

14 14 Pseudocode RadixSort dari N bilangan dengan d digit: RadixSort(A, N, d){ // sort N d-digit integer in the array A for (J = d down to 1){ Initialise 10 groups to empty Initialize a counter for each group to 0 for (I = 0; through N-1){ K = Jth digit of A[I] Place A[I] at the end of group K Increase Kth counter by 1 } replace the items in A with all the items in group 0, followed by all the items in group 1, and so on. }

15 15 Fungsi radix sort untuk bilangan bulat void RadixSort(int *data, int N) { int ember[10][N], cacah[10]; int max=data[0], sisa, idx; // Hitung jumlah putaran for (int j=1; jmax) max = data[j]; int ronde = 0; for ( ; max>0; max /= 10) ronde++; for (int k=0; k

16 16 // masukan data ke ember for (int j=0; j

17 17 Latihan 1.Mengapa jumlah penampung yang digunakan pada radixsort untuk mengurutkan bilangan bulat berjumlah 10? 2.Simulasikan radixsort dari digit terkanan terhadap data sebagai berikut: 295, 94, 411, 81, 535, 312, 64, 617, 756, 89, Simulasikan pengurutan data berikut dengan radixsort dari karakter paling kanan: saya, suka, gemas, karena, tau, ayam, kamu, miring, dan, gemar, tahu, kecap.

18 18 Penutup Untuk dapat Menjelaskan kembali algoritma radix sort, mahasiswa membahas tugas pertemuan 23 no 1, 2, dan 3. (diskusikan dalam kelompok)


Download ppt "1 Pertemuan 23 Radix Sort Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5."

Presentasi serupa


Iklan oleh Google