Gagasan "penyortiran cepat" sangat sederhana, dan seluruh proses penyortiran hanya membutuhkan tiga langkah:
(1) Temukan tolok ukur di set data
(2) Buat dua array, masing -masing menyimpan array kiri dan kanan
(3) Gunakan rekursi untuk membuat perbandingan berikutnya
Lihatlah demo: http://jsdo.it/norahiko/oxiy/fullscreen (halaman web mungkin lambat untuk dibuka, tunggu perlahan)
<script type = "text/javascript"> function quicksort (arr) {if (arr.length <= 1) {return arr; // jika hanya ada satu nomor dalam array, itu akan dikembalikan secara langsung; } var num = math.floor (arr.length/2); // temukan nilai indeks dari angka menengah. Jika itu adalah angka titik mengambang, bundar ke bawah var numvalue = arr.splice (num, 1); // temukan nilai bilangan menengah var kiri = []; var right = []; untuk (var i = 0; i <arr.length; i ++) {if (arr [i] <numvalue) {left.push (arr [i]); // nomor di sebelah kiri titik referensi diteruskan ke array kiri} else {right.push (arr [i]); // nomor di sebelah kanan diteruskan ke titik kanan ke kanan array (arr [i]);//nomor di sebelah kanan diteruskan ke titik referensi ke kanan array (arr [i]);//nomor di sebelah kanan referensi diteruskan ke kanan arch.push (arr [i]));/Nomor nomor kanan diteruskan ke kanan ke kanan quicksort (kiri) .concat ([numValue], quicksort (kanan)); // RECURTIFIVEST REPECIT} ALERT (quicksort ([32,45,37,16,2,87])); // pop "2,16,32,37,45,87" </script> skrip>