ALGORITMA SORTING TOPIK Sorting Insertion Sort Selection Sort
- Slides: 20
ALGORITMA SORTING
TOPIK � Sorting � Insertion Sort � Selection Sort � Merge Sort � Paradigma Divide-and-Conquer � Quicksort � Paradigma Divide-and-Conquer
SORTING � Mengatur elemen berdasar urutan tertentu � Digunakan secara luas dalam aplikasi � Beberapa algoritma sorting telah dibuat karena proses tersebut sangat mendasar dan sering digunakan
Insertion Sort � � Salah satu algoritma paling sederhana Cukup intuitif dan prosesnya mirip dengan mengurutkan kartu � Tujuan: mengurutkan kartu dari paling kecil hingga terbesar � Terdapat: kartu, meja 1, meja 2 � Awal: Kartu acak diletakkan pada meja 1 � Teknik: Kartu berurutan diletakkan pada meja 2 � Ambil kartu pertama dari meja 1, bandingkan dengan tabel 2 dan tempatkan sesuai posisi urutan di meja 2 � Ulangi hingga seluruh kartu terletak pada meja 2
INSERTION SORT: ALGORITMA � Bagi elemen data yang akan diurutkan menjadi dua � Bagian yang belum diurutkan � Bagian yang telah terurutkan � Ulangi langkah tersebut hingga tidak ada elemen tersisa dalam array � Elemen pertama dipilih dari bagian yang belum diurutkan � Tempatkan elemen terpilih sesuai urutan pada array
INSERTION SORT: ALGORITMA 1 2 3 4 5 6 7 8 9 10 11 12 13 void insertion. Sort(Object array[], int start. Idx, int end. Idx) { for (int i = start. Idx; i < end. Idx; i++) { int k = i; for (int j = i + 1; j < end. Idx; j++) { if (((Comparable) array[k]). compare. To( array[j])>0) { k = j; } } swap(array[i], array[k]); } }
INSERTION SORT: CONTOH
SELECTION SORT � Algoritma sorting yang lainnya � Intuitif dan mudah diimplementasikan � Juga mirip dengan cara lain dalam pengurutan kartu � Tujuan: mengurutkan kartu secara ascending � Diberikan: kartu, meja � Awal: Kartu disebar secara acak pada tabel � Periksa nilai, kemudian pilih kartu dengan nilai terendah � Tukarkan posisi kartu ini dengan kartu pertama pada meja � Cari kartu dengan nilai terendah dari sisa kartu yang ada � Tukarkan kartu terpilih dengan kartu pada posisi kedua � Ulangi proses hingga kartu kedua sebelum terakhir pada meja dibandingkan ditukar dengan kartu terakhir
SELECTION SORT: ALGORITMA �Pilih elemen dengan nilai terendah �Tukarkan elemen terpilih dengan elemen pada posisi ke - i �i dimulai dari 1 hingga n �Dimana n adalah total elemen yang ada dikurangi 1
SELECTION SORT: ALGORITMA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 void selection. Sort(Object array[], int start. Idx, int end. Idx) { int min; for (int i = start. Idx; i < end. Idx; i++) { min = i; for (int j = i + 1; j < end. Idx; j++) { if (((Comparable) array[min]). compare. To( array[j])>0) { min = j; } } swap(array[min], array[i]); } }
SELECTION SORT: CONTOH
MERGE SORT: PARADIGMA DIVIDE-AND-CONQUER � Menggunakan rekursi dalam penyelesaiannya : � Permasalahan awal dipilah menjadi sub-masalah � Solusi atas sub-masalah menuntun menuju permasalahan utama � 3 Langkah: � Divide � Membagi � permasalahan menjadi submasalah Conquer � Menyelesaikan sub-masalah secara rekursif � Jika sub-masalah cukup sederhana dan kecil, selesaikan secara langsung � Combine � Kombinasikan solusi dari sub-masalah yang ada, hingga mencapai permasalahan utama
MERGE SORT: ALGORITMA � Menggunakan pendekatan divide-and-conquer � Divide �Membagi � Conquer elemen data menjadi dua bagian �Selesaikan tiap bagian secara rekursif dengan memanggil method merge. Sort. � Combine �Kombinasikan dua bagian secara rekursif untuk mendapatkan urutan yang diharapkan � Rekursi selesai pada saat sisa dari sebagian elemen yang akan diurutkan tepat tersisa satu � Telah terurutkan
MERGE SORT: ALGORITMA 1 2 3 4 5 6 7 8 9 10 void merge. Sort(Object array[], int start. Idx, int end. Idx) { if (array. length != 1) { Divide the array into two halves, left. Arr and right. Arr merge. Sort(left. Arr, start. Idx, mid. Idx); merge. Sort(right. Arr, mid. Idx+1, end. Idx); combine(left. Arr, right. Arr); } }
MERGE SORT: CONTOH
QUICKSORT: ALGORITMA � Ditemukan oleh C. A. R. Hoare � Berdasar pada paradigma divide-and-conquer � Divide � Bagi array menjadi dua subarray A[p. . . q-1] dan A[q+1. . . r] dimana A[p. . . q-1] adalah kurang dari atau sama dengan A[q] dan elemen pada A[q+1. . . r] adalah lebih dari atau sama dengan A[q] � A[q] disebut sebagai pivot � Perhitungan q adalah bagian dari prosedur pemisahan � Conquer � Urutkan subarray tersebut dengan memanggil method quick. Sort secara rekursif � Tak perlu melakukan proses “Combine” � Subarrays telah terurutkan
QUICKSORT: ALGORITMA 1 2 3 4 5 6 7 8 9 10 void quick. Sort(Object array[], int left. Idx, int right. Idx) { int pivot. Idx; /* Termination condition! */ if (right. Idx > left. Idx) { pivot. Idx = partition(array, left. Idx, right. Idx); quick. Sort(array, left. Idx, pivot. Idx-1); quick. Sort(array, pivot. Idx+1, right. Idx); } }
QUICKSORT: CONTOH
QUICKSORT: CONTOH
KESIMPULAN �Teknik Sorting sederhana �Insertion Sort �Selection Sort �Paradigma �Merge Sort �Quicksort Divide-and-Conquer
- Difference between bubble sort and selection sort
- Topological sort can be implemented by?
- Bubble sort 5-66
- Perhatikan topik topik berikut
- Contoh topik dan judul
- Difference between selection and insertion sort
- Heap sort vs selection sort
- Bubble sort vs selection sort
- Bubble sort vs selection sort
- Selection sort vs bubble sort
- Internal sorting and external sorting
- Insertion sort wiki
- Insertion sort algorithm flowchart
- Insertion sort mips
- Insertion sort
- Insertion sort pseudocode
- Merge sort mips
- Insertion sort divide and conquer
- Shell sort python
- Insertion sort gif
- Insertion sort advanced analysis