Algoritma Quick Sort

Posted by Admin on 27 Mei 2019, 11:32 algoritma, quick sort, quick sort php, algoritma quick sort

Algoritma quick sort diperkenalkan pertama kali oleh C.A.R. Hoare pada tahun 1960, dan dimuat sebagai artikel di “Computer Journal 5” pada April 1962. Quick sort adalah algoritma sorting yang berdasarkan pembandingan dengan metoda divide-and-conqueror. Disebut Quick Sort, karena Algoritma quick sort mengurutkan dengan sangat cepat. Quick sort disebut juga dengan partition exchange sort, karena konsepnya membuat partisi-partisi, dan sort dilakukan per partisi.

Algoritma quick sort mengurutkan dengan sangat cepat, namun algoritma ini sangat komplex dan diproses secara rekursif. Sangat memungkinkan untuk menulis algoritma yang lebih cepat untuk beberapa kasus khusus, namun untuk kasus umum, sampai saat ini tidak ada yang lebih cepat dibandingkan algoritma quick sort.

Walaupun begitu algoritma quick sort tidak selalu merupakan pilihan yang terbaik. Seperti yang telah disebutkan sebelumnya, algoritma ini dilakukan secara rekursif yang berarti jika dilakukan untuk tabel yang berukuran sangat besar, walaupun cepat, dapat menghabiskan memori yang besar pula. Selain itu, algoritma ini adalah algoritma yang terlalu komplex untuk mengurutkan tabel yang berukuran kecil (hanya puluhan elemen misalnya). Selain itu algoritma quick sort mempunyai tingkat efisiensi yang buruk ketika dioperasikan pada tabel yang hampir terurut atau pada tabel yang terurut menurun.

Dalam algoritma quick sort, pemilihan pivot adalah hal yang menentukan apakah algoritma quick sort tersebut akan memberikan performa terbaik atau terburuk. 

Simulasi

Algoritma Quick Sort

Source Code PHP Algoritma Quick Sort

function quick_sort($my_array)
{
   $loe = $gt = array();
   if(count($my_array) < 2)
   {
       return $my_array;
   }
   $pivot_key = key($my_array);
   $pivot = array_shift($my_array);
   foreach($my_array as $val)
   {
       if($val <= $pivot)
       {
           $loe[] = $val;
       }elseif ($val > $pivot)
       {
           $gt[] = $val;
       }
   }
   return array_merge(quick_sort($loe),array($pivot_key=>$pivot),quick_sort($gt));
}

Cara Pakai

$angka = array(10,3,6,4,2,6,1);
print_r(quick_sort($angka));

Demo Program dapat dilihat disini

Referensi

https://id.wikipedia.org/wiki/Quicksort

https://rizarulham.wordpress.com/2009/10/07/algoritma-quick-sort/