Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Algoritma sorting.

Presentasi serupa


Presentasi berjudul: "Algoritma sorting."— Transcript presentasi:

1 Algoritma sorting

2 Topik Sorting Insertion Sort Selection Sort Merge Sort
Paradigma Divide-and-Conquer Quicksort

3 Sorting Mengatur elemen berdasar urutan tertentu
Digunakan secara luas dalam aplikasi Beberapa algoritma sorting telah dibuat karena proses tersebut sangat mendasar dan sering digunakan

4 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

5 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

6 Insertion Sort: Algoritma
void insertionSort(Object array[], int startIdx, int endIdx) { for (int i = startIdx; i < endIdx; i++) { int k = i; for (int j = i + 1; j < endIdx; j++) { if (((Comparable) array[k]).compareTo( array[j])>0) { k = j; } swap(array[i], array[k]);

7 Insertion Sort: Contoh

8 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 dan ditukar dengan kartu terakhir

9 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

10 Selection Sort: Algoritma
void selectionSort(Object array[], int startIdx, int endIdx) { int min; for (int i = startIdx; i < endIdx; i++) { min = i; for (int j = i + 1; j < endIdx; j++) { if (((Comparable) array[min]).compareTo( array[j])>0) { min = j; } swap(array[min], array[i]);

11 Selection Sort: Contoh

12 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

13 Merge Sort: Algoritma Membagi elemen data menjadi dua bagian
Menggunakan pendekatan divide-and-conquer Divide Membagi elemen data menjadi dua bagian Conquer Selesaikan tiap bagian secara rekursif dengan memanggil method mergeSort. 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

14 Merge Sort: Algoritma void mergeSort(Object array[], int startIdx,
int endIdx) { if (array.length != 1) { Divide the array into two halves, leftArr and rightArr mergeSort(leftArr, startIdx, midIdx); mergeSort(rightArr, midIdx+1, endIdx); combine(leftArr, rightArr); }

15 Merge Sort: Contoh

16 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 quickSort secara rekursif Tak perlu melakukan proses “Combine” Subarrays telah terurutkan

17 Quicksort: Algoritma void quickSort(Object array[], int leftIdx,
int rightIdx) { int pivotIdx; /* Termination condition! */ if (rightIdx > leftIdx) { pivotIdx = partition(array, leftIdx, rightIdx); quickSort(array, leftIdx, pivotIdx-1); quickSort(array, pivotIdx+1, rightIdx); }

18 Quicksort: Contoh

19 Quicksort: Contoh

20 Kesimpulan Teknik Sorting sederhana Paradigma Divide-and-Conquer
Insertion Sort Selection Sort Paradigma Divide-and-Conquer Merge Sort Quicksort


Download ppt "Algoritma sorting."

Presentasi serupa


Iklan oleh Google