Sorting
Struktur Data - Soritng Sorting Sorting / Pengurutan Data: Proses untuk menyusun kembali himpunan obyek menggunakan suatu aturan tertentu. Dua macam metode sorting: Ascending (urut naik, dari kecil ke besar) Descending (urut turun, dari besar ke kecil) Keuntungan: Data yang telah diurutkan / sorting lebih cepat dan lebih mudah dicari / searching. Type data yang diurutkan / sorting Array Link List Struktur Data - Soritng
Struktur Data - Soritng Algoritma Sorting Buble Sort (Exchange Sort) Selection Sort (Straight Selection) Shell Sort (Diminishing Increment) Quick Sort (Partition Exchange Sort) Radix Sort Merge Sort dsb Struktur Data - Soritng
Menukar data / Data Swap Fungsi ini digunakan untuk menukar dua buah elemen array. Fungsi ini sering dipanggil dalam fungsi - fungsi Sorting yang akan dibahas. typedef int ElementType; void Swap( ElementType *Lhs, ElementType *Rhs ){ ElementType Tmp = *Lhs; *Lhs = *Rhs; *Rhs = Tmp; } Struktur Data - Soritng
Struktur Data - Soritng Bubble Sort Bekerja seperti gelembung sabun dalam air yang naik keatas secara berurutan. Sebuah elemen akan dibandingkan dengan elemen berikutnya, bila lebih besar akan ditukar (atau sebaliknya bila diinginkan descending sorting), Bila tidak maka dilanjutkan pada elemen berikutnya. Metode sorting yang tidak baik Memiliki waktu proses lama Struktur Data - Soritng
Struktur Data - Soritng Bubble Sort Swap Swap Swap Visualisasi xSortLab.jar Swap Swap Struktur Data - Soritng
Struktur Data - Soritng Selection Sort Visualisasi xSortLab.jar Cari elemen terkecil, tukarkan dengan elemen ke I. Struktur Data - Soritng
Struktur Data - Soritng Shell Sort Dibuat oleh Donald E. Shell pada tahun 1959. Nama sebenarnya adalah Diminishing Increment. Secara singkat metode ini memiliki proses sebagai berikut: Bandingkan elemen pertama dengan elemen pada jarak tertentu (biasanya dengan elemen tengah). Tukarkan bila lebih besar. Kemudian teruskan prose sampai semua elemen dibandingkan dengan jarak sama. Kurangi jarak antar dua elemen menjadi setengahnya dan lakukan kembali proses perbandingan seperti langkah 1. Lakukan kedua langkah diatas terus menerus sampai jarak antar dua elemen yang dibandingkan sama dengan 1. Struktur Data - Soritng
Struktur Data - Soritng Shell Sort Struktur Data - Soritng
Struktur Data - Soritng Shell Sort Visualisasi visualization.jar Struktur Data - Soritng
Struktur Data - Soritng Quick Sort Visualisasi xSortLab.jar Dibuat oleh C.A.R Hoare. Dikenal juga sebagai Partition Exchange Sort Struktur Data - Soritng
Struktur Data - Soritng Quick Sort Secara umum ada 2 langkah, yaitu: Langkah 1: Misal array yang akan diurutkan sebesar N elemen. Dipilih elemen pertama dari array tersebut. Misal elemen tersebut dinamakan X. Lalu semua elemen disusun dengan menempatkan X pada posisi J sedemikan rupa sehingga semua elemen yang lebih kecil atau sama dengan X berada pada posisi 1 sampai dengan J - 1, dan semua elemen yang lebih besar X berada pada posisi J + 1 sampai dengan N. Setelah langkah 1 tersebut dilaksanakan akan terdapat 2 buah sub-array, yaitu sub-array dari semua elemen yang lebih kecil atau sama dengan X dan sub-array dari semua elemen yang lebih besar X. Langkah 2: Berikutnya adalah mengerjakan kedua sub-array itu dengan cara yang sama dengan langkah 1. Struktur Data - Soritng
Struktur Data - Soritng Radix Sort Mengurutkan bilangan dengan cara mengurutkan radix / digit-nya. Mengurutkan bilangan terbesar sampai terkecil, dengan membandingkan Least Significant Digit (LSD) / digit terkecil dari bilangan bilangan tersebut dan dilanjutkan sampai pada Most Significant Digit (MSD) / digit terbesar - nya. Semua bilangan yang diurutkan perlu disamakan jumlah digitnya. Misal: 100, 080, 003, dst. Struktur Data - Soritng
Struktur Data - Soritng Radix Sort Jumlah iterasi sebanyak digit terbesar dari bilangan - bilangan yang diurutkan. Untuk tiap - tiap kali iterasi, Bilangan - bilangan tersebut dikelompokkan berdasarkan nilai - nilai digit yang diperiksa mulai dari digit 0 s/d digit 9. Selanjutnya bilangan - bilangan yang telah dikelompokan itu disatukan kembali, dumulai dari kelompok digit 0 dan seterusnya sampai digit 9 Struktur Data - Soritng
Struktur Data - Soritng Radix Sort (Iterasi 1) Struktur Data - Soritng
Struktur Data - Soritng Radix Sort (Iterasi 2) Struktur Data - Soritng
Struktur Data - Soritng Radix Sort (Iterasi 3) Visualisasi visualization.jar Struktur Data - Soritng
Struktur Data - Soritng Merge Sort Memanfaatkan keteraturan yang diperoleh dalam proses merge. Sering disebut dengan metode MergeSort dua arah (Two Way MergeSort). Secara singkat metode ini dapat dijelaskan sbb: Array masukan yang memiliki n elemen, diaggap sebagai n array dengan 1 elemen. Untuk setiap pasang array dilakukan merging sehingga diperoleh N/2 array yang masing - masing memiliki 2 buah elemen (jika n ganjil akan terdapat tambahan satu array yang berelemen 1) Kemudian dilakukan merging kembali sehingga diperoleh N/4 buah array. Langkah tersebut dilakukan berulang - ulang sampai akhirnya didapat sebuah array yang telah urut. Struktur Data - Soritng
Struktur Data - Soritng Merge Digunakan untuk menyatukan dua buah array yang telah disorting menjadi sebuah array panjang. Secara umum proses merge dapat dijelaskan sebagai berikut Misal: Terdapat dua buah array yang telah disorting ascending Langkah pertama adalah mengambil elemen pertama dari kedua array (A1 dan A2) dan membandingkannya. Elemen yang terkecil dikopikan pada array tujuan (misal A2 lebih kecil) Elemen yang lebih besar (A1) kemudian dibandingkan dengan elemen berikutnya dari A2. Demikian dan seterusnya sampai salah satu dari array habis. Bila salah satu dari array yang di merge telah habis, maka semua elemen dari array yang masih tersisa dikopikan secara berurutan pada array tujuan. Struktur Data - Soritng
Struktur Data - Soritng Merge Contoh Struktur Data - Soritng
Struktur Data - Soritng Merge Sort Visualisasi Merge Sort 2.0 Struktur Data - Soritng