تصف هذه المقالة خوارزميات الفرز الشائعة الاستخدام لمصفوفات Java. شاركه للرجوع إليه ، على النحو التالي:
1. طريقة فرز الفقاعات
SortArray_01.java
الفئة العامة sortarray_01 {public static void main (string args []) {int [] array = {14 ، 5 ، 86 ، 4 ، 12 ، 3 ، 21 ، 13 ، 11 ، 2 ، 55 ، 66 ، 22} ؛ // إنشاء نظام صفيف أحادي البعد تهيئة. لـ (int i = 0 ؛ i <array.length ؛ i ++) {// traverse reaments in array array system.out.print (" + array [i]) ؛ // outpray report arme element if ((i + 1) ٪ 5 == 0) // other als in earment.out.out.println () ؛ Array.Length ؛ 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 {public static void main (string [] args) {random rd = new random () ؛ int [] Array = new int [15] ؛ // إعلان نظام الصفيف. لـ (int i = 0 ؛ i <array.length ؛ i ++) {// استخدم أرقام عشوائية لإنشاء 15 رقمًا عشوائيًا بين 0 و 20 صفيف [i] = rd.nextint (20) ؛ // تعيين قيمة إلى Array Array System.out.print ("" + Array [i]) ؛ if ((i + 1) ٪ 5 == 0) system.out.println () ؛ } arrays.sort (Array) ؛ // فرز صفيف النظام الصعودي system.out.println ("/narray بعد استخدام طريقة الفرز:") ؛ لـ (int i = 0 ؛ i <array.length ؛ i ++) {// إخراج البيانات في صفيف system.out.print (" + Array [i]) ؛ if ((i + 1) ٪ 5 == 0) system.out.println () ؛}}}نتائج التشغيل:
لا يتم استخدام صفيف قبل طريقة الفرز: 13 12 11 11 11 11 11 11 11 8 1 0 9 18 3RAY بعد استخدام طريقة الفرز: 0 1 3 8 11 11 11 11 11 12 13 17 18 18 18 18 18 18
3. طريقة الفرز السريع
SORTARRAY_03.JAVA
الفئة العامة sortarray_03 {public static void main (string args []) {int [] Intarray = {12 ، 11 ، 45 ، 6 ، 8 ، 43 ، 40 ، 57 ، 3 ، 20 ، 15 ، 88 ، 23} ؛ System.out.println ("Array قبل الفرز:") ؛ لـ (int i = 0 ؛ i <intarray.length ؛ i ++) {system.out.print (" + intarray [i]) ؛ // عنصر صفيف الإخراج if ((i + 1) ٪ 5 == 0) // system.out.println () ؛ System.out.println ("Array باستخدام QuickSort:") ؛ if ((i + 1) ٪ 5 == 0) // سطر واحد لكل 5 عناصر system.out.println () ؛ }} static int getMiddle (int [] int [] ، int left ، int right) {int temp ؛ // قم بعمل فرز سريع والعودة إلى موضع نقطة الوسط int mid = array [left] ؛ // ضع المركز في [0] بينما (يسار <يمين) {بينما (يسار <يمين && صفيف [يمين]> = منتصف) يمين-؛ temp = صفيف [يمين] ؛ // نقل البيانات الأصغر من نقطة الوسط إلى الصفيف الأيسر [يمين] = صفيف [يسار] ؛ صفيف [يسار] = درجة الحرارة ؛ بينما (يسار <اليمين && صفيف [يسار] <= منتصف) اليسار ++ ؛ temp = صفيف [يمين] ؛ // نقل البيانات أكبر من نقطة المركز إلى الصفيف الأيمن [يمين] = صفيف [يسار] ؛ صفيف [يسار] = درجة الحرارة ؛ } صفيف [يسار] = منتصف ؛ // انقل المركز إلى عودة الموضع الصحيح إلى اليسار ؛ // العودة إلى النقطة المركزية} int static int [] Quicksort (int [] int ، int اليسار ، يمين) {// طريقة الفرز السريع إذا (يسار <يمين - 1) {// إذا كانت نقطة البداية والعقدة لا تتداخل ، أي لم يتم تنفيذ المؤشر إلى النهاية int mid = gootmiddle (صافين ، إلى اليسار) ؛ // استرجع Quicksort النقطة الوسيطة (صفيف ، يسار ، منتصف - 1) ؛ Quicksort (صفيف ، منتصف + 1 ، يمين) ؛ } صفيف الإرجاع ؛ }}نتائج التشغيل:
صفيف قبل الفرز: 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 {public static void main (string args []) {int [] array = {14 ، 5 ، 86 ، 4 ، 12 ، 3 ، 51 ، 13 ، 11 ، 2 ، 32 ، 6 ، 45 ، 34} ؛ // إنشاء مصفوفة مصفنة أحادية البعد تهيئة ؛ // تشير إلى أصغر عنصر عنصر int ؛ // تشير إلى أصغر قيمة عنصر temp ؛ // المتغير المتوسط system.out.println ("Array Unsorted:") ؛ لـ (int i = 0 ؛ i <array.length ؛ i ++) {// traverse elements in array array system.out.print (""+array [i]) ؛ // عنصر صفيف الإخراج إذا ((i + 1) ٪ 5 == 0) // صف واحد لكل 5 عناصر system.out.println () ؛ } لـ (int i = 0 ؛ i <array.length ؛ i ++) {// استخدم الفهرس الأساسي لطريقة فرز التحديد = i ؛ keyvalue = صفيف [i] ؛ لـ (int j = i ؛ j <array.length ؛ j ++) if (array [j] <keyvalue) {index = j ؛ keyvalue = صفيف [j] ؛ } temp = array [i] ؛ صفيف [i] = صفيف [فهرس] ؛ صفيف [فهرس] = درجة الحرارة ؛ } system.out.println ("/nuse the Array بعد اختيار الفرز:") ؛ من أجل (int i = 0 ؛ i <array.length ؛ 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
ملاحظة: فيما يلي أداة عرض للرجوع إليها:
عرض توضيحي للرسوم المتحركة عبر الإنترنت أدخل/حدد/فقاعة/دمج/هيل/أداة عملية خوارزمية الفرز السريع:
http://tools.vevb.com/aideddesign/paixu_ys
لمزيد من المعلومات حول خوارزميات Java ، يمكن للقراء المهتمين بهذا الموقع عرض الموضوعات: "بنية بيانات Java وبرنامج تعليمي الخوارزمية" ، "ملخص" Tips Java ".
آمل أن يكون هذا المقال مفيدًا لبرمجة Java للجميع.