แนวคิดของ "การเรียงลำดับด่วน" นั้นง่ายมากและกระบวนการจัดเรียงทั้งหมดต้องใช้สามขั้นตอนเท่านั้น:
(1) ในชุดข้อมูลให้เลือกองค์ประกอบเป็น "ฐาน" (เดือย)
(2) องค์ประกอบทั้งหมดที่เล็กกว่า "การอ้างอิง" ถูกย้ายไปทางซ้ายของ "การอ้างอิง"; องค์ประกอบทั้งหมดที่ใหญ่กว่า "การอ้างอิง" ถูกย้ายไปทางขวาของ "การอ้างอิง"
(3) สำหรับชุดย่อยทั้งสองทางด้านซ้ายและขวาของ "พื้นฐาน" ทำซ้ำขั้นตอนแรกและขั้นที่สองจนกว่าจะมีองค์ประกอบเดียวที่เหลืออยู่ในชุดย่อยทั้งหมด
ตัวอย่างเช่นตอนนี้มีชุดข้อมูล {85, 24, 63, 45, 17, 31, 96, 50} จะเรียงลำดับได้อย่างไร?
ในขั้นตอนแรกให้เลือกองค์ประกอบกลาง 45 เป็น "ฐาน" (ค่าอ้างอิงสามารถเลือกได้โดยพลการ แต่การเลือกค่ากลางนั้นง่ายต่อการเข้าใจ)
ขั้นตอนที่สองคือการเปรียบเทียบแต่ละองค์ประกอบกับ "ฐาน" เพื่อสร้างสองชุดย่อยหนึ่งคือ "น้อยกว่า 45" และอีกอันหนึ่งคือ "มากกว่าหรือเท่ากับ 45"
ขั้นตอนที่สามคือการทำซ้ำขั้นตอนแรกและขั้นที่สองสำหรับสองชุดย่อยจนกว่าจะมีองค์ประกอบเดียวที่เหลืออยู่ในชุดย่อยทั้งหมด
ต่อไปนี้เป็นการอ้างอิงถึงข้อมูลออนไลน์ (ที่นี่และที่นี่) เพื่อใช้อัลกอริทึมข้างต้นในภาษา JavaScript
ก่อนอื่นกำหนดฟังก์ชั่น Quicksort ที่มีพารามิเตอร์เป็นอาร์เรย์
var Quicksort = function (arr) {};จากนั้นตรวจสอบจำนวนองค์ประกอบในอาร์เรย์และถ้ามันน้อยกว่าหรือเท่ากับ 1 มันจะถูกส่งคืน
var QuickSort = function (arr) {if (arr.length <= 1) {return arr; -ถัดไปเลือก "Pivot" และแยกออกจากอาร์เรย์ดั้งเดิมจากนั้นกำหนดอาร์เรย์ว่างสองอาร์เรย์เพื่อเก็บสองชุดย่อยของหนึ่งซ้ายและหนึ่งขวา
var QuickSort = function (arr) {if (arr.length <= 1) {return arr; } var pivotindex = math.floor (arr.length / 2); var pivot = arr.splice (pivotindex, 1) [0]; var left = []; var right = [];};จากนั้นเริ่มข้ามอาร์เรย์ให้วางองค์ประกอบที่เล็กกว่า "ฐาน" ลงในชุดย่อยทางด้านซ้ายและองค์ประกอบที่ใหญ่กว่าฐานลงในชุดย่อยทางด้านขวา
var QuickSort = function (arr) {if (arr.length <= 1) {return arr; } var pivotindex = math.floor (arr.length / 2); var pivot = arr.splice (pivotindex, 1) [0]; var left = []; var right = []; สำหรับ (var i = 0; i <arr.length; i ++) {ถ้า (arr [i] <pivot) {left.push (arr [i]); } else {right.push (arr [i]); -ในที่สุดกระบวนการนี้ทำซ้ำอย่างต่อเนื่องโดยใช้การเรียกซ้ำเพื่อรับอาร์เรย์ที่จัดเรียง
var QuickSort = function (arr) {if (arr.length <= 1) {return arr; } var pivotindex = math.floor (arr.length / 2); var pivot = arr.splice (pivotindex, 1) [0]; var left = []; var right = []; สำหรับ (var i = 0; i <arr.length; i ++) {ถ้า (arr [i] <pivot) {left.push (arr [i]); } else {right.push (arr [i]); }} ส่งคืน Quicksort (ซ้าย) .concat ([pivot], Quicksort (ขวา));};เมื่อใช้งานเพียงแค่เรียก Quicksort ()
ข้างต้นเป็นคำอธิบายโดยละเอียดของตัวอย่างอัลกอริทึม Quicksort ของซีรีย์อัลกอริทึม JavaScript ที่แนะนำโดยบรรณาธิการ ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!