บทความนี้อธิบายถึงอัลกอริทึมการเรียงลำดับที่เท่าเทียมกันของโครงสร้างข้อมูล Java และอัลกอริทึม แบ่งปันสำหรับการอ้างอิงของคุณดังนี้:
แนวคิดอัลกอริทึม:
แนวคิดพื้นฐานคือการจัดเรียงลำดับคี่ในลำดับหนึ่งแม้กระทั่งลำดับในลำดับเดียวจากนั้นลำดับคี่ในอีกลำดับและแม้แต่ลำดับในลำดับเดียวจนกว่าจะได้รับคำสั่งทั้งหมด
มายกตัวอย่างกันเถอะ
อาร์เรย์ที่จะจัดเรียง [6 2 4 1 5 9]
ครั้งแรกที่เปรียบเทียบลำดับคี่ลำดับคี่จะถูกนำมาเปรียบเทียบกับเพื่อนบ้านแม้กระทั่งลำดับเช่น 6 และ 2, 4 และ 1, 5 และ 9
[6 2 4 1 5 9]
หลังจากแลกเปลี่ยนมันจะกลายเป็น
[2 6 1 4 5 9]
การเปรียบเทียบตัวเลขคู่ที่สองคือ 6 และ 1 และ 5 และ 5 คือ
[2 6 1 4 5 9]
หลังจากแลกเปลี่ยนมันจะกลายเป็น
[2 1 6 4 5 9]
การเดินทางครั้งที่สามเป็นจำนวนคี่และ 2, 6 และ 5 ถูกเลือกเพื่อเปรียบเทียบกับคอลัมน์เพื่อนบ้านตามลำดับ
[2 1 6 4 5 9]
หลังจากการแลกเปลี่ยน
[1 2 4 6 5 9]
ซีรีส์ที่มีหมายเลขที่สี่
[1 2 4 6 5 9]
การแลกเปลี่ยนหนึ่งครั้ง
[1 2 4 5 6 9]
รหัสเฉพาะ:
คลาสสาธารณะหลัก { / ** * @param args อาร์กิวเมนต์บรรทัดคำสั่ง * / โมฆะคงที่สาธารณะหลัก (สตริง [] args) {int [] ตัวเลข = new int [] {12,33,45,33,13,55,34,7,7,6}; main.oddeventsort (ตัวเลข); สำหรับ (int i = 0; i <number.length; i ++) {system.out.print (ตัวเลข [i]+""); }} โมฆะคงที่ส่วนตัว endeVentSort (int [] ตัวเลข) {int temp; สำหรับ (int i = numbers.length-1; i> numbers.length/2-1; i-) {สำหรับ (int j = 1; j <= i; j+= 2) {ถ้า (j == numbers.length-1) break; if (ตัวเลข [j]> ตัวเลข [j+1]) {temp = ตัวเลข [j]; ตัวเลข [j] = ตัวเลข [j+1]; ตัวเลข [j+1] = อุณหภูมิ; }} สำหรับ (int j = 0; j <= i; j+= 2) {ถ้า (j == numbers.length-1) break; if (ตัวเลข [j]> ตัวเลข [j+1]) {temp = ตัวเลข [j]; ตัวเลข [j] = ตัวเลข [j+1]; ตัวเลข [j+1] = อุณหภูมิ; -PS: มีการกล่าวกันว่าอัลกอริทึมนี้ใช้งานง่ายกว่าในยุคมัลติคอร์
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับอัลกอริทึม Java ผู้อ่านที่มีความสนใจในเว็บไซต์นี้สามารถดูหัวข้อ: "โครงสร้างข้อมูล Java และการสอนอัลกอริทึม", "บทสรุปของเคล็ดลับการดำเนินงาน Java Dom", "บทสรุปของไฟล์ Java และเคล็ดลับการดำเนินการไดเรกทอรี" และ "สรุป
ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับการเขียนโปรแกรม Java ของทุกคน