1. แนวคิดอัลกอริทึม
Quicksort เป็นการปรับปรุงการเรียงลำดับแบบฟอง เสนอโดย CAR Hoare ในปี พ.ศ. 2505
2. การคิดอัลกอริทึม
แบ่งข้อมูลที่จะจัดเรียงออกเป็นสองส่วนแยกกันโดยการเรียงลำดับข้อมูลทั้งหมดในส่วนหนึ่งจะมีขนาดเล็กกว่าข้อมูลทั้งหมดในส่วนอื่น ๆ จากนั้นใช้วิธีนี้เพื่อจัดเรียงข้อมูลทั้งสองส่วนอย่างรวดเร็วตามลำดับ กระบวนการเรียงลำดับสามารถดำเนินการซ้ำเพื่อให้ข้อมูลทั้งหมดกลายเป็นลำดับที่เรียงลำดับ
3. นำแนวคิดไปใช้
① ใช้คีย์เวิร์ดแรก K 1 เป็นคำควบคุม แบ่ง [K 1 ,K 2 ,…,K n ] ออกเป็นสองส่วนย่อย เพื่อให้คีย์เวิร์ดทั้งหมดในพื้นที่ด้านซ้ายน้อยกว่าหรือเท่ากับ K 1 และคีย์เวิร์ดทั้งหมด ในพื้นที่ด้านขวามากกว่าหรือเท่ากับ K 1 และสุดท้ายคำควบคุมจะอยู่ในตำแหน่งที่เหมาะสมระหว่างสองพื้นที่ย่อย ข้อมูลในพื้นที่ย่อยยังอยู่ในสถานะไม่เรียงลำดับ
② ดูแลพื้นที่ด้านซ้ายโดยรวมและดำเนินการตามขั้นตอนที่ 1 และดำเนินการเดียวกันกับพื้นที่ด้านขวา (เช่น การเรียกซ้ำ)
3 ทำซ้ำขั้นตอนที่ 1 และ 2 จนกระทั่งพื้นที่ด้านซ้ายได้รับการประมวลผล
โมฆะคงที่สาธารณะ quickSortByMid (int [] a, int ต่ำ, int สูง) { ถ้า (ต่ำ > = สูง) กลับ; // แยก int pivot = a [ต่ำ]; // ค่าฐาน int i = ต่ำ, j = สูง; ในขณะที่ (i < j) { ในขณะที่ (i < j && a[j] >= pivot) --j; a[i]=a[j]; ในขณะที่ (i < j && a[i] <= pivot) + +ฉัน; a[j]=a[i]; } a[i]=pivot; quickSortByMid(a, ต่ำ, i-1);แผนผังของอัลกอริธึมการเรียงลำดับด่วน:
ข้างต้นคือเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์สำหรับทุกคนในการเรียนรู้อัลกอริทึมการเรียงลำดับอย่างรวดเร็วของ Java