เรียงลำดับอย่างรวดเร็ว
การเรียงลำดับด่วนเป็นหนึ่งในวิธีการเรียงลำดับที่สำคัญที่สุดในจาวาสคริปต์ ใช้ค่าเดือย (ค่าสุ่ม) จากอาร์เรย์ องค์ประกอบอื่นๆ ทั้งหมดในอาร์เรย์แบ่งออกเป็น 2 หมวดหมู่ โดยอาจน้อยกว่าค่า pivot และมากกว่าค่า pivot
หลังจากนั้นแต่ละหมวดหมู่ (น้อยกว่าเดือยและมากกว่าเดือย) อยู่ภายใต้ขั้นตอนเดียวกันกับการเลือกเดือย จากนั้นแต่ละหมวดหมู่จะแบ่งออกเป็นหมวดหมู่ย่อย (น้อยกว่าเดือยและมากกว่าเดือย) .
ในที่สุด หมวดหมู่ย่อยจะถูกแบ่งออกในลักษณะที่อาจมีองค์ประกอบหรือไม่มีองค์ประกอบหากไม่มีองค์ประกอบอื่นที่จะเปรียบเทียบ ค่าที่เหลือจะแสดงเป็น pivot ที่จุดก่อนหน้าบางจุด และไม่ลดลงจนถึงหมวดหมู่ย่อยที่ต่ำที่สุดนี้
ตัวอย่าง
<html>
<body>
<script>
function quickSort(originalArr) {
if (originalArr.length <= 1) {
return originalArr;
} else {
var leftArr = [];
var rightArr = [];
var newArr = [];
var pivot = originalArr.pop(); // Take a pivot value
var length = originalArr.length;
for (var i = 0; i < length; i++) {
if (originalArr[i] <= pivot) { // using pivot value start comparing
leftArr.push(originalArr[i]);
} else {
rightArr.push(originalArr[i]);
}
}
return newArr.concat(quickSort(leftArr), pivot, quickSort(rightArr)); // array will be //returned untill sorting occurs
}
}
var myArray = [9, 0, 2, 7, -2, 6, 1 ];
document.write("Original array: " + myArray);
var sortedArray = quickSort(myArray);
document.write("Sorted array: " + sortedArray);
</script>
</body>
</html> ผลลัพธ์
Original array: 9,0,2,7,-2,6,1 Sorted array: -2,0,1,2,6,7,9