تنفذ هذه المقالة ثمانية خوارزميات فرز شائعة الاستخدام: إدخال الفرز ، فرز الفقاعات ، اختيار الفرز ، فرز التل ، فرز سريع ، فرز الاندماج ، التراص ، فرز قاعدة LST
الأول هو ملف الثامن .
استيراد java.util.arrays. إدراج الفرز: مجمع الوقت O (n^2) public static void ersertsort (int a [] ، int n) {for (int i = 1 ؛ i <n ؛ ++ i) {{int temp = a [i] ؛ int j = i -1 ؛ ؛}} // Bubble Sorting: Time Compledent O (n^2) publesort static static static (int a [] ، int n) {for (int i = n -1 ؛ i> 0 ؛ 0 ؛ 0 ؛ 0 ؛ 0 ؛ 0 ؛ 0 ؛ 0 ؛ 0 ؛ 0 ؛ 0 ؛ 0 ؛ 0 ؛ temp = a [j] ؛ int a [] ، int n) {for (int i = 0 ؛ i <n -1 ؛ ++ i) {int min = a [i] ؛ j <n ؛ j] ؛ shellsort الفراغ الثابت العام (int a [] ، int n) {for (int gap = n / 2 ؛ gap> = 1 ؛ gap / = 2) {for (int i = gap ؛ i <n ؛ ++ i) { int temp = a [i] ؛ J + GAP] = test ؛}} // الفرز السريع: التعقيد الزمني O (nlgn) الفراغ الثابت العام Quicksort (int a [] ، int n) {_quicksort (_quicksort (a ، 0 ، n-1) ؛} static public static باطل اليسار ، Q -1) ؛ اليسار <يمين && [يمين]> = pivot) {--right ؛} a [left] = a [يمين] ؛ اليمين] = A [يسار] ؛} a [يسار] = pivot ؛ ، n -1) ؛ منتصف) ؛ -left +1 ؛ J]} int i = 0 ؛ ] <newa [j]) {a [k] = newa [i ++] ؛} آخر {a [k] = newa [j ++] ؛} بينما (i <= mid -Left) {a [k + +] = newa [i ++] ؛} بينما (j <= right -Left) {a [k ++] = newa [j ++] ؛ (int a [] ، int n) {buildMaxheap (a ، n) ؛ i) {int temp = a [0] [] ، int n) {upadjust (a ، n) ؛} // يتم ضبط مجموعة الطول n على الفراغ الثابت العام (int a [] ، int n) {// كل عنصر مع عبور عقدة طفل هو تم اجتيازها. n) {// child right قيمة القيمة أكبر من قيمة العقدة ، تبادلها إذا (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] ؛ } // addlednode (a ، n ، 2 * i) ؛ {// قيمة العقدة ، تبادلها إذا (A [2 * I -1]> a [i -1]) {int temp = a [2 * i -1] ؛ = A - 1] ؛ من Array ، Radix هي القاعدة // هذه الطريقة هي استخدام طريقة LST للفرز الأساسي ، ولا يتم تضمين طريقة MST فيه // المعلمة Radix هي القاعدة ، بشكل عام 10 ؛ من الأرقام إلى الصفيف المراد فرزها ؛ لإيداع صفيف [] العد = جديد [Radix] ؛ أول مكان إلى المقام الأول (int i = 0 ؛ i <<< istance ؛ ++ i) {system.arraycopy (a ، 0 ، newa ، 0 ، n) ؛ صفيفات صفيف Newa.fill (Count ، 0) ؛ ؛ الموضع النهائي لكل radixkey في الصفيف ، ونطاق رقم الموضع هو 1 -N لـ (int j = 1 ؛ j <radix ؛ ++ j) {count [j] = count [j] + count [j -1 ] J] ؛ثم اختبار رمز Testeightalgorithms.java ، الرمز كما يلي:
الطبقة العامة Testeightalgorithms {public static void printarray (int a [] ، int n) {for (int i = 0 ؛ i <n ؛ ++ i) {system.print (a [i] +"") ؛ == n -1) {system.out.println () ؛}} main public static void main (string [] args) {for (int i = 1 ؛ i <= 8 ؛ ++ i) {int arrr [] = {45 ، 38 ، 26 ، 77 ، 128 ، 38 ، 25 ، 444 ، 61 ، 153 ، 9999 ، 1012 ، 43 ، 128} ؛ 2: ARR.LENGTH : Quitealgorithms. ثماني أسماك نتائج التشغيل الأخيرة هي كما يلي:
ما سبق هو كل رمز Java لتنفيذ ثمانية خوارزميات فرز شائعة الاستخدام.