บทความนี้อธิบายถึงอัลกอริทึมการเรียงลำดับที่ใช้กันทั่วไปสำหรับอาร์เรย์ Java แบ่งปันสำหรับการอ้างอิงของคุณดังนี้:
1. วิธีการเรียงลำดับฟอง
SortArray_01.java
คลาสสาธารณะ SortArray_01 {โมฆะคงที่สาธารณะหลัก (String args []) {int [] array = {14, 5, 86, 4, 12, 3, 21, 13, 11, 2, 55, 66, 22}; // สร้างอาร์เรย์อาร์เรย์อาร์เรย์หนึ่งมิติที่เริ่มต้นที่เริ่มต้น ("อาร์เรย์ที่ไม่ได้เรียงลำดับ:"); สำหรับ (int i = 0; i <array.length; i ++) {// องค์ประกอบการสำรวจในอาร์เรย์อาร์เรย์ System.out.print (" + Array [i]); // องค์ประกอบอาร์เรย์เอาต์พุตถ้า (i + 1) % 5 == 0) // หนึ่งแถวสำหรับทุก ๆ 5 array.length; i = 0;ผลการทำงาน:
อาร์เรย์ที่ไม่ได้แยก: 14 5 86 4 12 3 21 13 11 2 55 66 22 อาร์เรย์จัดเรียงโดยวิธีฟอง: 2 3 4 5 11 12 13 14 21 22 55 66 86
2. การเรียงลำดับแบบเพิ่มอาร์เรย์
SortArray_02.java
นำเข้า java.util.Arrays; นำเข้า java.util.random; คลาสสาธารณะ sortarray_02 {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {สุ่ม RD = ใหม่สุ่ม (); int [] array = new int [15]; // ประกาศอาร์เรย์ System.out.println ("อาร์เรย์ก่อนใช้วิธีการเรียงลำดับ:"); สำหรับ (int i = 0; i <array.length; i ++) {// ใช้หมายเลขสุ่มเพื่อสร้างหมายเลขสุ่ม 15 หมายเลขระหว่าง 0 ถึง 20 อาร์เรย์ [i] = rd.nextint (20); // กำหนดค่าให้กับอาร์เรย์อาร์เรย์ System.out.print ("" + อาร์เรย์ [i]); if ((i + 1) % 5 == 0) System.out.println (); } array.sort (อาร์เรย์); // เรียงลำดับอาร์เรย์คำสั่งซื้อจากน้อยไปหามาก system.out.println ("/narray หลังจากใช้วิธีการเรียงลำดับ:"); สำหรับ (int i = 0; i <array.length; i ++) {// เอาต์พุตข้อมูลในอาร์เรย์อาร์เรย์ System.out.print (" + array [i]); ถ้า ((i + 1) % 5 == 0) System.out.println ();}}}}}ผลการทำงาน:
อาร์เรย์ก่อนที่จะไม่ได้ใช้วิธีการเรียงลำดับ: 13 12 11 11 11 11 17 13 11 8 1 0 9 18 3Array หลังจากใช้วิธีการเรียงลำดับ: 0 1 3 8 9 11 11 11 11 11 12 13 13 17 18 18
3. วิธีการเรียงลำดับอย่างรวดเร็ว
SortArray_03.java
คลาสสาธารณะ sortArray_03 {โมฆะคงที่สาธารณะหลัก (สตริง args []) {int [] intarray = {12, 11, 45, 6, 8, 43, 40, 57, 3, 20, 15, 88, 23}; System.out.println ("อาร์เรย์ก่อนการเรียงลำดับ:"); สำหรับ (int i = 0; i <intarray.length; i ++) {system.out.print (" + intarray [i]); // องค์ประกอบอาร์เรย์เอาท์พุทถ้า ((i + 1) % 5 == 0) // system.out.println ();} system.out.println () System.out.println ("อาร์เรย์โดยใช้ Quicksort:"); if ((i + 1) % 5 == 0) // หนึ่งบรรทัดสำหรับทุก ๆ 5 องค์ประกอบ system.out.println (); }} สาธารณะคงที่ int getMiddle (int [] อาร์เรย์, int ซ้าย, int ขวา) {int temp; // ทำการจัดเรียงอย่างรวดเร็วและกลับไปที่จุดกึ่งกลางตำแหน่ง int กลาง = อาร์เรย์ [ซ้าย]; // วางตรงกลางที่ [0] ในขณะที่ (ซ้าย <ขวา) {ในขณะที่ (ซ้าย <ขวา && อาร์เรย์ [ขวา]> = กลาง) ขวา-; อุณหภูมิ = อาร์เรย์ [ขวา]; // ย้ายข้อมูลที่เล็กกว่าจุดกึ่งกลางไปยังอาร์เรย์ด้านซ้าย [ขวา] = อาร์เรย์ [ซ้าย]; อาร์เรย์ [ซ้าย] = อุณหภูมิ; ในขณะที่ (ซ้าย <ขวา && อาร์เรย์ [ซ้าย] <= กลาง) ซ้าย ++; อุณหภูมิ = อาร์เรย์ [ขวา]; // ย้ายข้อมูลที่ใหญ่กว่าจุดกึ่งกลางไปยังอาร์เรย์ขวา [ขวา] = อาร์เรย์ [ซ้าย]; อาร์เรย์ [ซ้าย] = อุณหภูมิ; } array [ซ้าย] = mid; // เลื่อนกึ่งกลางไปยังตำแหน่งที่ถูกต้องกลับไปทางซ้าย; // กลับไปที่จุดกึ่งกลาง} สาธารณะคงที่ int [] quicksort (int [] อาร์เรย์, int ซ้าย, int ขวา) {// วิธีการเรียงลำดับอย่างรวดเร็วถ้า (ซ้าย <ขวา - 1) {// ถ้าจุดเริ่มต้นและโหนดไม่ทับซ้อนนั่นคือตัวชี้ไม่ถูกเรียกใช้ // ดึงจุดกึ่งกลาง Quicksort (อาร์เรย์, ซ้าย, กลาง - 1); Quicksort (อาร์เรย์, กลาง + 1, ขวา); } return array; -ผลการทำงาน:
อาร์เรย์ก่อนการเรียงลำดับ: 12 11 45 6 8 43 40 57 3 20 15 88 23 อาร์เรย์หลังจากใช้วิธีการ QuickSelect: 3 6 8 11 12 20 15 23 40 43 45 88 57
4. เลือกวิธีการเรียงลำดับ
SortArray_04.java
คลาสสาธารณะ sortArray_04 {โมฆะคงที่สาธารณะหลัก (สตริง args []) {int [] array = {14, 5, 86, 4, 12, 3, 51, 13, 11, 2, 32, 6, 45, 34}; // สร้างอาร์เรย์อาร์เรย์หนึ่งมิติที่เริ่มต้น int keyvalue; // ระบุดัชนีค่าองค์ประกอบที่เล็กที่สุด // ระบุค่าองค์ประกอบที่เล็กที่สุด int temp; // ตัวแปรระดับกลาง System.out.println ("อาร์เรย์ที่ไม่ได้แยก:"); สำหรับ (int i = 0; i <array.length; i ++) {// องค์ประกอบทรัวเวอร์สในอาร์เรย์อาร์เรย์ System.out.print (""+อาร์เรย์ [i]); // องค์ประกอบอาร์เรย์เอาต์พุตถ้า ((i + 1) % 5 == 0) // หนึ่งแถวสำหรับทุก ๆ 5 องค์ประกอบ System.out.println (); } สำหรับ (int i = 0; i <array.length; i ++) {// ใช้ดัชนีหลักของวิธีการเรียงลำดับการเลือก = i; keyValue = array [i]; สำหรับ (int j = i; j <array.length; j ++) ถ้า (array [j] <keyValue) {index = j; KeyValue = Array [J]; } temp = array [i]; อาร์เรย์ [i] = อาร์เรย์ [ดัชนี]; อาร์เรย์ [ดัชนี] = อุณหภูมิ; } system.out.println ("/nuse อาร์เรย์หลังจากเลือกการเรียงลำดับ:"); สำหรับ (int i = 0; i <array.length; i ++) {// สำรวจองค์ประกอบในอาร์เรย์ที่เรียงลำดับ system.out.print (""+อาร์เรย์ [i]); // องค์ประกอบอาร์เรย์เอาต์พุตถ้า ((i + 1) % 5 == 0) System.out.println (); // หนึ่งแถวสำหรับทุก ๆ 5 องค์ประกอบ}}}ผลการทำงาน:
อาร์เรย์ที่ไม่ได้เรียงลำดับ: 14 5 86 4 12 3 51 13 11 2 32 6 45 34 อาร์เรย์หลังจากใช้วิธีการคัดแยก: 2 3 4 5 6 11 12 13 14 32 34 45 51 86
PS: นี่คือเครื่องมือสาธิตสำหรับการอ้างอิงของคุณ:
การสาธิตแอนิเมชั่นออนไลน์แทรก/เลือก/ฟอง/ผสาน/ฮิลล์/อัลกอริทึมการเรียงลำดับอย่างรวดเร็วเครื่องมือกระบวนการ:
http://tools.vevb.com/aideddesign/paixu_ys
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับอัลกอริทึม Java ผู้อ่านที่มีความสนใจในเว็บไซต์นี้สามารถดูหัวข้อ: "โครงสร้างข้อมูล Java และการสอนอัลกอริทึม", "บทสรุปของเคล็ดลับการดำเนินงาน Java Dom", "บทสรุปของไฟล์ Java และเคล็ดลับการดำเนินการไดเรกทอรี" และ "สรุป
ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับการเขียนโปรแกรม Java ของทุกคน