تصف هذه المقالة طريقة تنفيذ فرز التكافؤ لفرز تبادل Java. شاركه للرجوع إليه. التفاصيل كما يلي:
يعد نوع التكافؤ ، أو نوع النقل التكافؤ ، أو نوع الطوب ، خوارزمية فرز بسيطة نسبيًا تم اختراعها في الأصل للحوسبة المتوازية مع الترابط المحلي. هذا نوع مقارن يشبه خصائص فرز الفقاعة.
في هذه الخوارزمية ، من خلال مقارنة أزواج رقمية متاخمة (iden-even) في الصفيف ، إذا كان الزوج الفردي في الترتيب الخطأ (الأول أكبر من الأسلوب الثاني) ، ثم التبادل. كرر الخطوة التالية ، ولكن لجميع الأزواج الرقمية (حتى الوفاح). استمر في ذلك بالتناوب.
فرز صفائف المعالج
في فرز الحوسبة الموازية ، يقوم كل معالج بمعالجة قيمة واحدة مقابلة لها ولها فقط ربطات محلية مع الجيران الأيمن واليمين. يمكن لجميع المعالجات مقارنة وتبادل العمليات مع الجيران في نفس الوقت ، بالتناوب بترتيب غريب ، حتى حتى التعادل. تم نشر الخوارزمية في الأصل من قبل Habermann في عام 1972 وأظهرت كفاءتها في المعالجة الموازية.
يمكن تمديد الخوارزمية بشكل فعال إلى الحالات التي يكون لكل معالج قيم متعددة. في Baudetstevenson التكافؤ دمج خوارزمية التقسيم ، يقوم كل معالج بفرز المصفوفات الفرعية التي يمتلكها في كل خطوة ، ثم يقوم بدمج قسم دمج أو تندمج مع الجيران.
التكافؤ ذات الباتشر وحتى الفرز
يعد فرز التكافؤ في Batcher خوارزمية فرز ذات صلة ولكنها أكثر كفاءة تستخدم عمليات التبادل والعمليات المثالية.
نهج Batcher فعال للغاية على معالجات الحوسبة المتوازية مع ترابط واسع النطاق.
أسوأ وقت تعقيد/ثيتا (ن^2)
الرسم البياني الديناميكي التماثل هو كما يلي:
تنفيذ الكود:
حزمة com.baobaotao.test ؛ : pre "> </span> * param array <span style =" White-Space: pre "> </span> */patch static void batchersort (int [] array) {int length = array.length ؛ boolean flag = صحيح ؛ ، i+1) ؛ ، i+1) لتبادل B * param c يتم تبادل الرقم C */ public static void (int [] A ، int b ، int c) {int temp = 0 ؛ ]> a [c]) {temp = a [b] printarr (int [] {int (int c: array) {system.out.print (c + "") ؛ [] رقم {11،95،45،15،78،84،51،24،12} ؛تحليل الإخراج:
11 45 15 95 51 78 12 84 2411 15 45 51 12 95 24 78 8411 15 12 45 24 51 78 95 8411 12 15 24 45 51 78 84 95
آمل أن يكون هذا المقال مفيدًا لبرمجة Java للجميع.