บทความนี้อธิบายถึงอัลกอริทึมการเรียงลำดับที่รวดเร็วที่ใช้โดย Java ตามวิธีการแบ่งและพิชิต แบ่งปันสำหรับการอ้างอิงของคุณดังนี้:
แพ็คเกจ CN.NWSUAF.QUICK;/*** สุ่มสร้างหมายเลข 20 และจัดเรียงพวกเขาอย่างรวดเร็ว** @Author Liu Yonglang**/คลาสสาธารณะอย่างรวดเร็ว {/*** ฟังก์ชั่นแลกเปลี่ยนเพื่อใช้การดำเนินการแลกเปลี่ยนตัวเลขสองตัวในอาร์เรย์** @param swap (int [] อาร์เรย์, int i, int j) {int temp = array [i]; อาร์เรย์ [i] = อาร์เรย์ [j]; อาร์เรย์ [j] = อุณหภูมิ; } / *** อัลกอริทึมการหารและพิชิตการพิชิต** @param array* อาร์เรย์ที่จะดำเนินการ* @param ต่ำ* ที่อยู่เริ่มต้นของโมดูลในส่วน* @param ความสูง* ที่อยู่ท้ายของโมดูลในส่วน* @return ตำแหน่งตัวห้อยขององค์ประกอบอ้างอิง* / สาธารณะ // สแกนจากขวาไปซ้ายเพื่อค้นหาองค์ประกอบแรกที่เล็กกว่า pivot ในขณะที่ (ต่ำ <ความสูง) {ในขณะที่ (ต่ำ <ความสูง && อาร์เรย์ [ความสูง]> = ความสูง)-; // ระบุว่าองค์ประกอบที่เล็กกว่าเดือยพบถ้า (ต่ำ <ความสูง) // หลังจากการแลกเปลี่ยน, การดำเนินการต่ำกว่าการดำเนินการ +1 (อาร์เรย์, ต่ำ ++, ความสูง); // สแกนจากซ้ายไปขวาเพื่อค้นหาองค์ประกอบแรกที่ใหญ่กว่า pivot ในขณะที่ (ต่ำ <ความสูง && อาร์เรย์ [ต่ำ] <= pivot) ต่ำ ++; // ระบุว่าองค์ประกอบที่มีขนาดใหญ่กว่าเดือยพบถ้า (ต่ำ <ความสูง) // หลังจากการแลกเปลี่ยน, ดำเนินการ -1 การแลกเปลี่ยนการดำเนินการ (อาร์เรย์, ต่ำ, ความสูง-); } // กลับไปที่ตำแหน่งสุดท้ายของความสูงของการส่งคืนองค์ประกอบอ้างอิง; } / ** * อาร์เรย์เรียงลำดับอย่างรวดเร็ว * * @param array * อาร์เรย์ที่จะทำงาน * @param ต่ำ * ต่ำ * ความสูง @param * สูง * / การเรียงลำดับแบบคงที่สาธารณะ (int [] อาร์เรย์, int ต่ำ, ความสูง int) {// บันทึกตำแหน่งที่สอดคล้องกับองค์ประกอบอ้างอิงที่แตกต่างกัน // เรียงลำดับเฉพาะในกรณีที่ (ต่ำ <ความสูง) {// หารอาร์เรย์อุณหภูมิ = ด่วน (อาร์เรย์, ต่ำ, ความสูง); // เรียงลำดับแบบซ้ำสำหรับการเรียงลำดับช่วงซ้าย (อาร์เรย์, ต่ำ, อุณหภูมิ - 1); // เรียงลำดับแบบซ้ำสำหรับการเรียงลำดับช่วงเวลาที่เหมาะสม (อาร์เรย์, อุณหภูมิ + 1, ความสูง); }} โมฆะคงที่สาธารณะหลัก (สตริง [] args) {int [] array = new int [20]; System.out.println ("ผลการทดสอบ wulin.com:"); System.out.print ("ก่อนการเรียงลำดับลำดับ:"); สำหรับ (int i = 0; i <array.length; i ++) {// สุ่มสร้างจำนวนเต็ม 20 จำนวนของ 0-99 อาร์เรย์ [i] = (int) (math.random () * 100); System.out.print (Array [i] + ""); } system.out.print ("/nsorted sequence:"); เรียงลำดับ (อาร์เรย์, 0, array.length - 1); สำหรับ (int i = 0; i <array.length; i ++) system.out.print (array [i]+""); -ผลการทำงาน:
PS: นี่คือเครื่องมือสาธิตสำหรับการอ้างอิงของคุณ:
การสาธิตแอนิเมชั่นออนไลน์แทรก/เลือก/ฟอง/ผสาน/ฮิลล์/อัลกอริทึมการเรียงลำดับอย่างรวดเร็วเครื่องมือกระบวนการ:
http://tools.vevb.com/aideddesign/paixu_ys
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับอัลกอริทึม Java ผู้อ่านที่มีความสนใจในเว็บไซต์นี้สามารถดูหัวข้อ: "โครงสร้างข้อมูล Java และการสอนอัลกอริทึม", "บทสรุปของเคล็ดลับการดำเนินงาน Java Dom", "บทสรุปของไฟล์ Java และเคล็ดลับการดำเนินการไดเรกทอรี" และ "สรุป
ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับการเขียนโปรแกรม Java ของทุกคน