As-salamu'alaykum wr wb.
Lama ga posting artikel nih, maaf saya sibuk CBT Produktif hehe ..
oke , postingan kali ini saya akan membahas wacana shorting di C++ / Cplusplus hehe ..
Q : Shorting itu apa sih ka?
A : Shorting atau pengurutan adalah proses penyusunan kembali suatu data yang sebelumnya sudah disusun secara teratur sesuai dengan pola dan metode tertentu. Pengurutan sanggup secara ascending(urut naik) atau descending(urut turun). Perlu anda ketahui bahwa pengurutan data dalam struktur data sangatlah penting terutama untuk data yang bersifat integer, pecahan, ataupun karakter.
Q : di C++ ada berapa macam shorting ka?
A : Ada banyak, Yuk kita bahas materi shorting .. hehe
1. Radix Sort
Radix sort yakni algoritma non-comparation sort atau pengurutan tanpa perbandingan . metode ini mengklarifikisi sebuah data sesuai dengan kategori urutan tertentu. Dan setiap kategori diurutkan lagi dan seterusnya sesuai dengan kebutuhan. Kemudian bagian2 dari kategori tersebut akan digabungkan kembali.
Catatan : data yang diurutkan pertama kali yaitu berupa input nilai2 yang dimasukkan pertama kali menurut radix pertamanya, kemudian diteruskan atau diurutkan lagi menurut radix keduanya, dst…
Pada system decimal radix yakni digit dalam angka decimal. Missal : angka 354 mempunyai 3 digit yaitu 3, 5 dan 4
Contoh algoritma radix sort untuk mengurutkan bilangan bundar positif, dengan jumlah digit maksimal 3 :
313 | 354 | 123 | 321 | 543 | 756 | 834 | 675 |
· Pertama kita harus membagi-bagi data sesuai dengan urutan terkanan
· Lihat terlebih dahulu digit yang paling besar untuk memilih kategori berapa baris data yang akan kita urutkan, dan dicontoh ini nilai digit paling besar yaitu angka 8, sehingga kategori sebanyak 8 baris dan diawali dengan angka 0. Supaya lebih terperinci lihat table dibawah :
Kategori digit 1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
isi | - | 321 | - | 313,123, 543 | 354,834 | 675 | 756 | - | - |
Tabel 1.1
Hasil dari kategori pertama tadi akan digabungkan kembali sesuai dengan klarifikasi diatas ;
321 | 313 | 123 | 543 | 354 | 834 | 675 | 756 |
Tabel 1.2
Kemdian dilakukan pengkategorian kembali menurut dengan digit yang ke-2 dengan berpatokan / melihat baris urutan dari pengkategorian yang pertama tadi yaitu (Tabel 1.2).
Kategori digit 2 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
isi | - | 313 | 321,123 | 834 | 543 | 354,756 | - | 675 | - |
Tabel 1.3
Selanjutnya hasil dari pengkategorian ke-2 digabungkan kembali sehingga diperoleh :
313 | 321 | 123 | 834 | 543 | 354 | 756 | 675 |
Table 1.4
Langkah terakhir yaitu pengkategorian ke-3 berdasar digit ke-3 dengan berpatokan melihat baris urutan pengkategorian ke-2 yaitu (Tabel 1.4)
Kategori digit 3 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
isi | - | 123 | - | 313,321, 354 | - | 543 | 675 | 756 | 834 |
Jadi, hasil balasannya sanggup dituliskan :
123 | 313 | 321, | 354 | 543 | 675 | 756 | 834 |
Table 1.6
Dari proses2 yang sudah kita kerjakan memakai Redix Sort, sangat terperinci Radix sort termasuk algoritma pengurutan tanpa pembanding yang bersifat melihat digit2 angka sebagai pengontrolnya. Sebenarnya Radix Sort sanggup diimplementasikan dalam pengurutan bilangan Decimal dan bilangan bit. Namun dalam penggunaannya Radix Sort sanggup dimodifikasi untuk mengurutkan data2 negatif & pecahan.
Kelebiha : merupakan algoritma pengurutan yang cepat, gampang dan sangat efektif
Kekurangan : pengguaannya terbatas pada kasus2 tertentu dan memerlukan memori komplemen yang besar dalam prosesnya mengkategorikan sebuah data.