บทความนี้ใช้อัลกอริธึมการเรียงลำดับที่ใช้กันทั่วไปแปดประการ: การเรียงลำดับการเรียงลำดับการเรียงลำดับการเลือกการเรียงลำดับการเรียงลำดับเนินเขาการเรียงลำดับที่รวดเร็วการเรียงลำดับการควบรวม
ครั้งแรกคือ ไฟล์ EightAlgorithms.java
นำเข้า Java.util.Arrays; แทรกการเรียงลำดับ: เวลาคอมเพล็กซ์ o (n^2) โมฆะคงที่สาธารณะ insertSort (int a [], int n) {สำหรับ (int i = 1; i <n; ++ i) {{int temp = a [i]; int j = i -1; ;}} // การเรียงลำดับฟอง: ความซับซ้อนของเวลา o (n^2) โมฆะสแตติกโมฆะสาธารณะ (int a [], int n) {สำหรับ (int i = n -1; i> 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; temp = a [j]; int a [], int n) {สำหรับ (int i = 0; i <n -1; ++ i) {int min = a [i]; j <n; j]; index = j;}} a [index] = a [i]; โมฆะแบบคงที่สาธารณะ Shellsort (int a [], int n) {สำหรับ (int gap = n / 2; gap> = 1; gap / = 2) {สำหรับ (int i = gap; i <n; ++ i) { int temp = a [i]; int j = i -gap; j + gap] = test;}} // การเรียงลำดับอย่างรวดเร็ว: ความซับซ้อนของเวลา o (nlgn) void public quicksort (int a [], int n) {_quicksort (_quicksort (a, 0, n-1); เป็นโมฆะซ้าย, Q -1); ซ้าย <ขวา && a [ขวา]> = pivot) {-ขวา;} a [ซ้าย] = a [ขวา]; ขวา] = a [ซ้าย];} a [ซ้าย] = pivot; , N -1); กลาง); _mergesort (a, mid + 1, ขวา); -left +1; int newa [] = new int [ความยาว]; j];} int i = 0; ] <newa [j]) {a [k] = newa [i ++];} else {a [k] = newa [j ++];} ในขณะที่ (i <= mid -left) {a [k + +] = newa [i ++];} ในขณะที่ (j <= ขวา -left) {a [k ++] = newa [j ++];} // การเรียงลำดับของฮีป: ความซับซ้อนของเวลา o (nlgn) โมฆะสาธารณะ heapsort (int a [], int n) {buildmaxheap (a, n); i) {int temp = a [0]; [], int n) {upadjust (a, n);} // อาร์เรย์ของความยาว n ถูกปรับให้เข้ากับโมฆะคงที่สาธารณะ upadjust (int a [], int n) {// แต่ละองค์ประกอบที่มีโหนดลูก Traversed n) {// child ที่ถูกต้องค่าของค่ามากกว่าค่าของโหนดแลกเปลี่ยนถ้า (a [2 * i]> a [i -1]) {int temp = a [2 * i]; a [2 * i] = a [i -1]; i -1]> a [i -1]) {int temp = a [2 * i -1]; } // ปรับ adjustNode (a, n, 2 * i); {// ค่าของโหนด, แลกเปลี่ยนถ้า (a [2 * i -1]> a [i -1]) {int temp = a [2 * i -1]; = a - 1]; ของอาร์เรย์ radix เป็นฐาน // วิธีนี้คือการใช้วิธี LST สำหรับการเรียงลำดับฐานและวิธี MST ไม่รวมอยู่ใน // พารามิเตอร์ radix คือฐานโดยทั่วไป 10; ตัวเลขไปยังอาร์เรย์ที่จะจัดเรียง; เพื่อฝากอาร์เรย์ของ [] count = new int [radix]; สถานที่แรกไปยังสถานที่แรก (int i = 0; i <<< istance; ++ i) {system.arraycopy (a, 0, newa, 0, n); อาร์เรย์ newa array.fill (count, 0); ; // รับค่าของบิตการประมวลผลปัจจุบันของจำนวนองค์ประกอบอาร์เรย์ [radixkey] ++;} // ในเวลานี้แต่ละองค์ประกอบในการนับ [] จะถูกบันทึกโดยจำนวนครั้งที่ปรากฏในบิต radixkey // ตำแหน่งสิ้นสุดของแต่ละ radixkey ในอาร์เรย์และช่วงหมายเลขตำแหน่งคือ 1 -n สำหรับ (int j = 1; j <radix; ++ j) {นับ [j] = นับ [j] + นับ [j -1 ];} // ใช้หลักการของการเรียงลำดับเพื่อให้ได้การเรียงลำดับ j]; -count [radixkey];} divide = divide * radix;}}}จากนั้น รหัสทดสอบ testeightalgorithms.java รหัสมีดังนี้:
Public Class TesteightAlgorithms {Public Static Void PrintArray (int a [], int n) {สำหรับ (int i = 0; i <n; ++ i) {system.print (a [i] +""); == n -1) {system.out.println ();}} โมฆะคงที่สาธารณะหลัก (สตริง [] args) {สำหรับ (int i = 1; i <= 8; ++ i) {int arrr [] = = {45, 38, 26, 77, 128, 38, 25, 444, 61, 153, 9999, 1012, 43, 128}; 2: Eightalgorithms.bubblesort (arr, arr.length); : EightAlgorithms.quicksort (arr, arr.length); EightAlgorithms.lStradixSort (arr, arr.length, 10, 4); ผลการดำเนินการครั้งสุดท้ายมีดังนี้:
ข้างต้นเป็นรหัสทั้งหมดสำหรับ Java ที่จะใช้อัลกอริทึมการเรียงลำดับที่ใช้กันทั่วไปแปดรายการ