My first Magazine pemrograman-kompetitif-dasar | Page 47

3.2 Pengurutan Karena perlu membuat tabel frekuensi, maka counting sort hanya dapat digunakan ketika rentang nilai datanya kecil, misalnya ≤ 10 7 . Selain itu, algoritma ini hanya dapat mengurutkan data diskret. Data seperti bilangan pecahan tidak dapat diurutkan secara tepat. Alternatifnya, untuk menangani data dengan rentang yang besar atau data yang tidak diskret, kita bisa menggunakan radix sort yang memiliki konsep yang mirip dengan counting sort . 3.2.5 Rangkuman Tabel 3.3: Perbandingan beberapa Algoritma Pengurutan. Algoritma Kompleksitas Keterangan Bubble sort O(N 2 ) - Selection sort O(N 2 ) Dapat digunakan untuk partial sort dalam O(KN) Insertion sort O(N 2 ) Sangat cepat jika data ham- pir terurut, kasus terbaiknya O(N) Counting sort O(N + M) Cepat hanya untuk data de- ngan rentang yang kecil Terdapat algoritma pengurutan yang lebih efisien, misalnya quicksort dan merge sort . Algoritma pengurutan tersebut menggunakan konsep divide and conquer yang akan dipelajari pada Bab 5. II Sekilas Info JJ Bahasa pemrograman tertentu seperti Java atau C++ memiliki fungsi pengurutan bawaan, sehingga pada umumnya Anda tidak perlu mengimplementasikan fungsi pengurutan sendiri. Namun, Anda harus paham konsep pengurutan jika sewaktu-waktu Anda harus memodifikasi algoritma pengurutan untuk menyelesaikan soal yang diberikan. 37