Algoritma sorting.

Slides:



Advertisements
Presentasi serupa
Algoritma Sorting Alpro-2.
Advertisements

STRUKTUR DATA (3) sorting array
Sorting (Pengurutan).
ARRAY 1 DIMENSI #10 STIKOM Searching Pengantar Manfaat Inisialisasi
Hour 12: APPLIED RECURSION
PENGURUTAN ( SORTING ) Fajrizal.
Pengurutan Data Nurdiansah PTIK 09 UNM.
STRUKTUR DATA sorting array
Algoritma Divide and Conquer
Algoritma Divide and Conquer
Meningkatkan kemampuan quick sort
Algoritma Divide and Conquer
STRUKTUR DATA (3) sorting array
SORTING.
Algoritma & Struktur Data Sorting Evangs Mailoa.
Quick Sort dan Merge Sort
Sorting Pertemuan ke 14..
Algoritma dan Struktur Data
Teknik Informatika - Universitas Muhammadiyah Malang (UMM)
STRUKTUR DATA (4) Sorting dan Searching Array
Algoritma Divide and Conquer
Matakuliah : T0456 ~ Algoritma dan Metode Object Oriented Programming
Algoritma Sorting Tenia Wahyuningrum.
Pengurutan (Sorting) Diperlukan untuk mempercepat pencaharian suatu target dalam suatu daftar (list). Jenis Pengurutan:  Ascending Pengurutan dilakukan.
Sorting (Pengurutan).
Sorting 2007/2008 – Ganjil – Minggu 5.
1 Pertemuan 9 DIVIDE And CONQUER Matakuliah: T0034/Perancangan & Analisis Algoritma Tahun: 2005 Versi: R1/0.
Metode Pengurutan (Sorting)
Algoritma Divide and Conquer (Bagian 2) Wahyul Wahidah Maulida, ST.,M.Eng.
12-CRS-0106 REVISED 8 FEB 2013 CSG523/ Desain dan Analisis Algoritma Divide and Conquer Intelligence, Computing, Multimedia (ICM)
Tugas Kelompok 6 Teknik Sort.
MATERI PERKULIAHAN ANALISIS ALGORITMA
LANJUTAN DARI SHORTING
PENGURUTAN (SORTING).
STRUKTUR DATA Chapt 07 : Sorting Oleh : Yuli Praptomo PHS, S.Kom.
Algoritma dan Struktur Data
Sorting Pengurutan data dalam struktur data sangat penting terutama untuk data yang beripe data numerik ataupun karakter. Pengurutan dapat dilakukan secara.
Struktur Data Prio Handoko, S. Kom., M.T.I.
SORTING (Lanjut).
Pengurutan (Sorting).
STRUKTUR DATA (3) sorting array
“Pengurutan Data”.
Algoritma dan Struktur Data
STRUKTUR DATA (3) sorting array
Metode pemecahan masalah
STRUKTUR DATA sorting array
Imam Gunawan, M. Kom STMIK-AMIK Jayanusa Padang
Sorting Shell sort, Merge sort, Quick sort
Nama : Siti Hajar Unit : B Nim : No.Hp : 0852 – 2000 – 3786.
IT234 Algoritma dan Struktur Data
Sorting.
Sorting (Pengurutan).
STRUKTUR DATA (3) sorting array
SORTING ARRAY SESI 2.
Algoritma Divide and Conquer
Algoritma Divide and Conquer
Algoritma Divide and Conquer
IT234 Algoritma dan Struktur Data
Algoritma Divide and Conquer
Sorting Dasar Pemrograman
STRUKTUR DATA (3) sorting array
IT234 Algoritma dan Struktur Data
STRUKTUR DATA (3) sorting array
Pengurutan (sorting).
IT234 Algoritma dan Struktur Data
MODEL SORTING Kelompok V Rahmawati ( )
Sorting.
Sorting (Pengurutan).
SORTING.
FONDASI PEMROGRAMAN & STRUKTUR DATA #9
Transcript presentasi:

Algoritma sorting

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

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 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]);

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 dan 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 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]);

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 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

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); }

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

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); }

Quicksort: Contoh

Quicksort: Contoh

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