Sebut dan jelaskan dua macam sorting secara umum

Macam-macam Sorting:

Merupakan algoritma pengurutan paling tua dengan metode pengurutan paling sederhana. Pengurutan yang dilakukan dengan membandingkan masing-masing item dalam suatu list secara berpasangan, menukar item jika diperlukan, dan mengulaginya sampai akhir list secara berurutan, sehingga tidak ada lagi item yang dapat ditukar.

Sebut dan jelaskan dua macam sorting secara umum

Ide utama dari algoritma selection sort adalah memilih elemen dengan nilai paling rendah dan menukar elemen yang terpilih dengan elemen ke-i. Nilai dari i dimulai dari 1 ke n, dimana n adalah jumlah total elemen dikurangi 1.

Sebut dan jelaskan dua macam sorting secara umum

Algoritma insertion sort pada dasarnya memilah data yang akan diurutkan menjadi dua bagian, yang belum diurutkan dan yang sudah diurutkan. Elemen pertama diambil dari bagian array yang belum diurutkan dan kemudian diletakkan sesuai posisinya pada bagian lain dari array yang telah diurutkan. Langkah ini dilakukan secara berulang hingga tidak ada lagi elemen yang tersisa pada bagian array yang belum diurutkan.

Sebut dan jelaskan dua macam sorting secara umum

Merupakan algoritma yang stau jenis dengan insertion sort, dimana pada setiap nilai i dalam n/i item diurutkan. Pada setiap pergantian nilai, i dikurangi sampai 1 sebagai nilai terakhir

Sebut dan jelaskan dua macam sorting secara umum
author: wikipedia

Algoritma dirumuskan dalam 3 langkah berpola divide-and-conquer. Berikut menjelaskan langkah kerja dari Merge sort.

1. Divide

Memilah elemen – elemen dari rangkaian data menjadi dua bagian.

2. Conquer

Conquer setiap bagian dengan memanggil prosedur merge sort secara rekursif

3. Kombinasi

Mengkombinasikan dua bagian tersebut secara rekursif untuk mendapatkan rangkaian data berurutan

Proses rekursi berhenti jika mencapai elemen dasar. Hal ini terjadi bilamana bagian yang akan diurutkan menyisakan tepat satu elemen. Sisa pengurutan satu elemen tersebut menandakan bahwa bagian tersebut telah terurut sesuai rangkaian.

Sebut dan jelaskan dua macam sorting secara umum
author : Swfung8

Algoritma ini berdasar pada pola divide-and-conquer. Berbeda dengan merge sort, algoritma ini hanya mengikuti langkah – langkah sebagai berikut :

1. Divide

Memilah rangkaian data menjadi dua sub-rangkaian A[p…q-1] dan A[q+1…r] dimana setiap elemen A[p…q-1] adalah kurang dari atau sama dengan A[q] dan setiap elemen pada A[q+1…r] adalah lebih besar atau sama dengan elemen pada A[q]. A[q] disebut sebagai elemen pivot. Perhitungan pada elemen q merupakan salah satu bagian dari prosedur pemisahan.

2. Conquer

Mengurutkan elemen pada sub-rangkaian secara rekursif. Pada algoritma quicksort, langkah ”kombinasi” tidak di lakukan karena telah terjadi pengurutan elemen – elemen pada sub-array

Sebut dan jelaskan dua macam sorting secara umum
Author: Matt Chan

Heap sort adalah sorting yang menggunakan struktur data heap, dengan nilai parent selalu lebih besar dari pada nilai childnya.

Algoritma:

  1. Buat suatu heap.
  2. Ambil isi dari root masukkan kedalam sebuah array.
  3. Hapus element root dengan mempertahankan properti heap.
  4. Ulangi sampai tree menjadi kosong
Sebut dan jelaskan dua macam sorting secara umum
author : Swfung8

Algoritma:

  • Cari nilai maksimum dan minimum di array
  • Inisialisasi array bucket Daftar <> unsur (ukuran maxValue – minValue + 1)
  • Pindahkan elemen dalam array untuk bucket
  • Write bucket keluar (dalam rangka) ke array yang asli

Secara kompleksitas waktu, radix sort termasuk ke dalam Divide and Conquer.Namun dari segi algoritma untuk melakukan proses pengurutan, radix sort tidak termasuk dalam Divide and Conquer.

Radix sortmerupakan sebuah algoritma pengurutan yang mengatur pengurutan nilai tanpa melakukan beberapa perbandingan pada data yang dimasukkan.

Algoritma Sorting merupakan algoritma yang menempatkan elemen list pada urutan tertentu. Urutan yang paling sering digunakan ialah urutan numerikal dan urutan lexicographical. Sorting yang efisien sangat dibutuhkan untuk mengoptimisasi penggunaan dari algoritma lain seperti pencarian dan penggabungan yang membutuhkan list terurut untuk berjalan dengan sempurna, yang juga sering digunakan untuk Canonicalisisasi data dan menghasilkan output yang dapat dibaca manusia. (Wikipedia)

Sekarang masi Kita bahas satu-persatu :

1. Buble Sort Merupakan algoritma pengurutan paling tua dengan metode pengurutan paling sederhana. Pengurutan yang dilakukan dengan membandingkan masing-masing item dalam suatu list secara berpasangan, menukar item jika diperlukan, dan mengulaginya sampai akhir list secara berurutan, sehingga tidak ada lagi item yang dapat ditukar.

Sebut dan jelaskan dua macam sorting secara umum


Implementasi :

echo "//bubble sortn"; $data=array(6,5,3,1,8,7,2,4); function bubble_sort($data){ $n=count($data); for ($i = 0;$i<$n;$i++){ for ($j = $n-1;$j>$i;$j--){ if ($data[$j] < $data[$j-1]){ $dummy=$data[$j]; $data[$j]=$data[$j-1]; $data[$j-1]=$dummy; } } } return $data; } print_r(bubble_sort($data));

2. Insertion Sort Algoritma insertion sort pada dasarnya memilah data yang akan diurutkan menjadi dua bagian, yang belum diurutkan dan yang sudah diurutkan. Elemen pertama diambil dari bagian array yang belum diurutkan dan kemudian diletakkan sesuai posisinya pada bagian lain dari array yang telah diurutkan. Langkah ini dilakukan secara berulang hingga tidak ada lagi elemen yang tersisa pada bagian array yang belum diurutkan.

Sebut dan jelaskan dua macam sorting secara umum


Implementasi : echo "//insertion sortn"; $data=array(6,5,3,1,8,7,2,4); function insertion_sort($data){ $n=count($data); for ($i = 1;$i<$n;$i++){ for ($k = $i; $k>0; $k--) { if($data[$k]<$data[$k-1]){ $dummy=$data[$k]; $data[$k]=$data[$k-1]; $data[$k-1]=$dummy; } } } return $data; } print_r(insertion_sort($data));

3. Selection Sort Ide utama dari algoritma selection sort adalah memilih elemen dengan nilai paling rendah dan menukar elemen yang terpilih dengan elemen ke-i. Nilai dari i dimulai dari 1 ke n, dimana n adalah jumlah total elemen dikurangi 1.

Sebut dan jelaskan dua macam sorting secara umum


Implementasi : echo "//selection sortn"; $data=array(6,5,3,1,8,7,2,4); function selection_sort($data){ $n=count($data); for ($i = 0;$i<$n;$i++){>

4. Shell Sort Merupakan algoritma yang stau jenis dengan insertion sort, dimana pada setiap nilai i dalam n/i item diurutkan. Pada setiap pergantian nilai, i dikurangi sampai 1 sebagai nilai terakhir.

Sebut dan jelaskan dua macam sorting secara umum


Implementasi : echo "//shell sortn"; $data=array(6,5,3,1,8,7,2,4); function shell_sort($data){ $n=count($data); $k=0; $gap[0]=(int) ($n / 2); while($gap[$k]>1){ $k++; $gap[$k]=(int)($gap[$k-1]/2); } for($i=0;$i<=$k;$i++){>=0 && $temp<$data[$p]){>

5. Merge Sort Algoritma dirumuskan dalam 3 langkah berpola divide-and-conquer. Berikut menjelaskan langkah kerja dari Merge sort. - Divide : Memilah elemen – elemen dari rangkaian data menjadi dua bagian. - Conquer : Conquer setiap bagian dengan memanggil prosedur merge sort secara rekursif

- Kombinasi : Mengkombinasikan dua bagian tersebut secara rekursif untuk mendapatkan rangkaian data berurutan

Proses rekursi berhenti jika mencapai elemen dasar. Hal ini terjadi bilamana bagian yang akan diurutkan menyisakan tepat satu elemen. Sisa pengurutan satu elemen tersebut menandakan bahwa bagian tersebut telah terurut sesuai rangkaian.

Sebut dan jelaskan dua macam sorting secara umum

Implementasi :

echo "//merge sortn"; $data=array(6,5,3,1,8,7,2,4); function merge_sort ($data){ if (count($data) <=> 0 && count($right) > 0){ if ($left[0] <=> 0) array_push($result, array_shift($left)); while (count($right) > 0) array_push($result, array_shift($right)); return $result; } print_r(merge_sort($data));

6. Quick Sort
Algoritma ini berdasar pada pola divide-and-conquer. Berbeda dengan merge sort, algoritma ini hanya mengikuti langkah – langkah sebagai berikut :

- Divide
Memilah rangkaian data menjadi dua sub-rangkaian A[p…q-1] dan A[q+1…r] dimana setiap elemen A[p…q-1] adalah kurang dari atau sama dengan A[q] dan setiap elemen pada A[q+1…r] adalah lebih besar atau sama dengan elemen pada A[q]. A[q] disebut sebagai elemen pivot. Perhitungan pada elemen q merupakan salah satu bagian dari prosedur pemisahan.

- Conquer Mengurutkan elemen pada sub-rangkaian secara rekursif. Pada algoritma quicksort, langkah ”kombinasi” tidak di lakukan karena telah terjadi pengurutan elemen – elemen pada sub-array.

Sebut dan jelaskan dua macam sorting secara umum


Implementasi : echo "//quick sortn"; $data=array(6,5,3,1,8,7,2,4); function quick_sort($data) { if(!count($data)) return $data; $pivot= $data[0]; $low = $high = array(); $n = count($data); for($i=1; $i < $n; $i++) { if($data[$i] <=>

7. Heap Sort
Heap sort adalah sorting yang menggunakan struktur data heap, dengan nilai parent selalu lebih besar dari pada nilai childnya.

Algoritma : - Buat suatu heap. - Ambil isi dari root masukkan kedalam sebuah array. - Hapus element root dengan mempertahankan properti heap. - Ulangi sampai tree menjadi kosong

Sebut dan jelaskan dua macam sorting secara umum


Implementasi : echo "//heap sortn"; $data=array(6,5,3,1,8,7,2,4); function build_heap(&$data, $i, $t){ $tmp_var = $data[$i]; $j = $i * 2 + 1; while ($j <=>= 0; $i--){ $count = count($data) - 1; build_heap($data, $i, $count); } for ($i = (count($data) - 1); $i >= 1; $i--) { $tmp_var = $data[0]; $data[0] = $data[$i]; $data[$i] = $tmp_var; build_heap($data, 0, $i - 1); } } heap_sort($data); print_r($data);

Algoritma pembanding yang stabil menjaga urutan relatif dari rekord dengan indeks yang sama. (Indeks merupakan porsi dari rekors yang menjadi basis dari sorting; yang mungkin ataupun tidak termasuk dalam rekord tersebut.) Jika seluruh indeks berbeda maka perbedaan ini tidak dibutuhkan. Tetapi jika terdapat indeks yang sama, maka algoritma sorting itu stabil walaupun terdapat dua rekord (misalkan R dan S) dengan indeks yang sama, dan R muncul sebelum S pada list aslinya, kemudian R akan selalu muncul sebelum S pada list yang terurut. Ketika elemen yang sama tak dapat dibedakan, seperti dengan integer, atau secara umumnya, setiap data dimana seluruh elemen ialah nilai, tingkat kestabilannya tidak dipermasalahkan. Walaupun, asumsikan bahwa setiap angka yang ganda diurutkan berdasarkan komponen pertama mereka.

Tertarik dengan dunia web development sejak 1 tahun yang lalu. Pendidikan terakhirnya adalah SMP kelas 3. Keahliannya adalah pandai membantu (menyusahkan) orang tua, jago melipat kertas, dan cepat mengangkat jemuran.