Apa itu Penyortiran Array?

Penyortiran array adalah proses mengambil elemen individu dari array dan mengaturnya dalam beberapa jenis urutan logis menurut serangkaian aturan yang ditentukan oleh pengguna. Prosesnya melibatkan langkah melalui larik, satu elemen pada satu waktu, dan menguji elemen tersebut terhadap elemen di sekitarnya untuk menentukan apakah elemen tersebut perlu dipindahkan ke indeks lain di dalam larik. Saat melakukan pengurutan larik, ada beberapa algoritme yang dapat digunakan, terutama jika kondisi pengurutan bersifat numerik dibandingkan dengan sesuatu yang lebih arbitrer. Sebagian besar algoritme pengurutan larik diukur berdasarkan kecepatan dan efisiensinya, dengan algoritme yang paling lambat adalah yang paling mudah diprogram dan yang paling cepat jauh lebih kompleks.

Algoritma pengurutan array yang paling sederhana disebut bubble sort, dan juga yang paling lambat. Prosesnya dimulai dengan loop yang akan melewati setiap elemen dalam array. Elemen saat ini dibandingkan dengan elemen berikutnya dalam array dan, jika elemen berikutnya lebih rendah nilainya daripada elemen saat ini, data pada indeks akan dialihkan. Kelemahan dari bubble sort adalah perlu mengulang array beberapa kali untuk membuat semua swap yang diperlukan untuk mengurutkan array. Dalam implementasi paling dasar, sort akan mengulang seluruh array satu kali penuh untuk setiap elemen yang dikandungnya.

Pengurutan pemilihan menggunakan algoritme yang melakukan pengurutan larik dengan cara yang sedikit lebih efisien daripada pengurutan gelembung tetapi masih memerlukan beberapa iterasi melalui larik. Pengurutan ini dimulai dengan mengulang array untuk menemukan elemen dengan nilai terendah. Elemen ini kemudian ditempatkan di indeks pertama larik dan beberapa variabel pelacakan ditambahkan. Siklus kemudian berulang, sekarang mencari nilai terendah berikutnya yang kemudian akan ditempatkan di indeks kedua array. Proses berlanjut sampai elemen dengan nilai tertinggi ditempatkan di indeks terakhir dari array.

Metode pengurutan array yang efisien tetapi terkadang rumit untuk diterapkan dikenal sebagai quicksort. Quicksorting melibatkan pengambilan nilai yang berada di tengah-tengah semua nilai yang mungkin ada dalam array. Algoritma berjalan melalui semua elemen array dan menempatkan semua nilai yang lebih besar dari angka median di akhir array, dan nilai yang lebih rendah di awal. Proses ini dilakukan secara rekursif pada blok-blok array sampai, pada akhirnya, seluruh array diurutkan. Dengan asumsi nilai tengah yang digunakan untuk array cukup akurat, ini bisa menjadi cara yang sangat cepat untuk mengurutkan.

Salah satu faktor yang dapat mempengaruhi algoritme pengurutan array adalah cara data diuji kesetaraannya. Bilangan sederhana mudah untuk dibandingkan untuk nilai yang lebih besar, tetapi ini mungkin tidak berlaku untuk kelas data kompleks di mana beberapa kondisi perlu dibandingkan. Semakin lama waktu yang dibutuhkan untuk membandingkan apakah satu elemen lebih besar atau lebih kecil dari yang lain, semakin lama waktu yang dibutuhkan algoritme untuk mengurutkan array.