شرح التقليب في Java [مع أمثلة الترميز]

نشرت: 2020-11-24

تم تطوير JAVA بواسطة James Gosling في Sun Microsystems في عام 1995. باستخدام JAVA ، يمكن للمطورين إنشاء تطبيقات مستقرة وآمنة ومرنة قادرة على العمل على أي نظام أساسي تقريبًا - بما في ذلك أنظمة التشغيل المستندة إلى Linux و Windows و macOS.

توفر خاصية الكتابة مرة واحدة وتشغيلها دائمًا لـ JAVA (المعروفة أيضًا باسم WORA) الحاجة إلى إعادة ترجمة التعليمات البرمجية التي تم تجميعها بشكل مُرضٍ مرة واحدة بالفعل. إن تعدد استخدامات JAVA يجعلها لغة مثالية لدمج الوظائف المنطقية والرياضية المعقدة المضمنة في جميع أنواع التطبيقات عبر الأنظمة الأساسية تقريبًا.

تمتد مزايا استخدام JAVA لتطوير تطبيقات الويب ، على عكس أي بيئة تطوير ويب أخرى (أو شائعة) أخرى ، إلى ثلاث ركائز رئيسية لفوائد التطبيق المستدامة ، وهي:

  1. من السهل تعلم بناء جملة JAVA وسهل التكيف معه ، ومناسب للمبرمجين في كل مستوى من الوتيرة والتعقيد. هذا يجعل JAVA رهانًا آمنًا لفرق التطوير التي تخضع لتغييرات متكررة في الموظفين. يعد الوقت الذي يستغرقه مورد جديد لمواءمة نفسه مع منصة التطوير المشتركة (JAVA) من أقل الأوقات في الصناعة.
  2. JAVA هي لغة برمجة عالية المستوى وموجهة للكائنات ، مما يجعلها نموذجية تمامًا في النهج ، وتمنح المطورين القدرة على إنشاء أجزاء قابلة لإعادة الاستخدام وظيفيًا من التعليمات البرمجية ، وبالتالي تقليل الجهد. مكتبة ضخمة من الوظائف المضمنة تقلل أيضًا من التبعيات على الإضافات من الدرجة الثالثة أو الوظائف الإضافية للمترجم ، والنصوص ، وما إلى ذلك - والتي بدورها تمنح JAVA واحدة من أقل أوقات التنفيذ.
  3. تمزج JAVA بين أفضل ما في العوالم من خلال كونها مستقلة عن النظام الأساسي كما تمت مناقشته أعلاه. يمكن نقل تطبيق الويب الذي تم تطويره في JAVA بسهولة من نظام تشغيل إلى آخر دون أي خسارة في الوظائف ، وهذه أداة لا تقدر بثمن يمكن امتلاكها في أي بيئة تطوير.

كواحد من الجوانب التي تجعل JAVA مربحة جدًا كمنصة تطوير للويب ، يمكن استغلال الحد الأدنى من تبعيات التنفيذ وبناء الجمل الحسابية بسخاء لأداء أي تعليمات رياضية أو منطقية تقريبًا عن طريق استدعاء وظيفة مضمنة ، مع الحد الأدنى من الإضافات التخصيص.

أحد الأمثلة الأكثر إشراقًا على هذه المرونة في الكود ، هو القدرة على إجراء التقليب في JAVA - وبشكل أكثر تحديدًا ، من أجل التوزيع العشوائي حقًا وإيجاد جميع التباديل الممكنة لجميع الأحرف المتوفرة في سلسلة معينة.

في هذا البرنامج التعليمي الإرشادي ، سوف نتعلم كيفية محاولة إجراء هذا التقليب في JAVA عن طريق تخزين الحرف الأول من السلسلة في موقع "مُتعقب" من السلسلة ، واستدعاء وظيفة createPermutation () لعشوائية الاختلافات المختلفة مع جميع الأنواع الأخرى الأحرف في السلسلة.

قراءة: أسئلة وأجوبة مقابلة جافا

جدول المحتويات

التقليب في جافا - مفهوم خوارزمية التراجع

لإيجاد حل لمشكلة التقليب في JAVA ، يجب علينا أولاً أن نتعرف على المفهوم الذي أصبح مقبولاً على نطاق واسع في مجتمع تطوير الويب ، كخوارزمية خوارزمية التراجع هي عملية تكرارية تعتمد على الإصلاح الدوري لحرف واحد من سلسلة معينة ودمجها مع جميع التبديلات الممكنة لجميع الأحرف الأخرى ، وتكرار هذه العملية بأحرف في كل موضع من السلسلة على حدة ، للوصول إلى الحد الأقصى (وكل ما هو ممكن) عدد المتغيرات لتلك السلسلة.

من السهل فهم خوارزمية التقليب في JAVA في سياق سلسلة معينة من ثلاثة أحرف. لنفترض أن هذه الأحرف الثلاثة في سلسلة معينة هي A و B و C.

تتمثل الخطوة الأولى لإجراء هذا التغيير في JAVA في البدء بإصلاح حرف واحد (سنبدأ دائمًا بإصلاح الحرف المتاح في الموضع الأول) ، ثم إجراء مبادلة مع جميع الأحرف المتبقية ، من خلال دمجها مع الأصل ( ثابت).

على سبيل المثال ، في مثال سلسلة ABC ، ​​سنقوم بتنفيذ أول ثلاثة تكرارات للسلسلة من خلال إصلاح الحرف A (وهو ثم نصل إلى المجموعات التالية: ABC و BAC و CBA .

الخطوة التالية هي بالمثل " إصلاح " الحرف الموجود في الموضع التالي من السلسلة (في هذه الحالة ، الحرف الموجود في الموضع الثاني من السلسلة ، أي ب ) وتبديل الأحرف المتبقية (بما في ذلك الحرف الذي تم في النهاية ، سوف نستمر في تكرار هذه الخطوة مع كل مستوى من التوزيع العشوائي ، حتى نصل إلى مجموعة كاملة من جميع التباديل الممكنة:

ABC

ACB

باك

BCA

CBA

سيارة أجرة

في نموذج الكود / قسم الإخراج المطلوب المتاح في نهاية هذه المقالة ، سنحول هذه المحاولة لإجراء التقليب في JAVA ، إلى كود مقروء وبالتالي نرى التباديل يتم حسابه في الوقت الفعلي.

إجراء تقليب في JAVA - الخوارزمية العودية للتراجع والمبادلة

يمكن وصف ملخص موجز لعملية أخذ سلسلة عشوائية وإجراء تبديل شامل في JAVA ، باستخدام الخوارزمية العودية خطوة بخطوة:

  1. تعريف السلسلة - أولاً ، حدد سلسلة. يمكنك دائمًا اختيار قبول سلسلة عشوائية كمتغير إدخال ، ولكن لتوضيح الغرض والجهد ، سنستخدم السلسلة المعرفة مسبقًا ABC في هذا المثال.
  2. إصلاح الأحرف - إصلاح حرف واحد (ابدأ بالحرف في الموضع الأول واستمر في تبديله مقابل جميع الأحرف المتبقية).
  3. createPermutation () - استدعاء واستخدام الإخراج من دالة createPermutation () ، لجميع الأحرف المتبقية.
  4. التراجع العودي - نفذ خوارزمية "backtracking" ، واستمر في تبديل الأحرف بشكل متكرر حتى تصل شفرتك إلى نهاية السلسلة (في مثالنا الحالي ، حتى C).

إجراء تقليب في جافا - نموذج التعليمات البرمجية:

سلسلة PermuteString للفئة العامة {

// تحديد وظيفة لمبادلة الأحرف في الموضع i مع جميع الأحرف في الموضع j

المبادلة العامة الثابتة للسلسلة (String a، int i، int j) {

// تعريفات الأحرف للأحرف الثابتة في السلسلة

char [] b = a.toCharArray () ؛

شار ؛

// إجراء المقايضة في الخطوة التالية

ch = ب [i] ؛

ب [i] = ب [ي] ؛

ب [ي] = الفصل ؛

إرجاع String.valueOf (ب) ؛

}الرئيسية العامة الثابتة الفراغ (سلسلة [] args)

{

// تحديد السلسلة الافتراضية ABC

String str = "ABC" ؛

// حساب طول السلسلة

int len ​​= str.length () ؛

// طباعة جميع التوزيعات العشوائية

System.out.println ("فيما يلي جميع التباديل الممكنة للسلسلة ABC:")؛

التوليد (str، 0، len) ؛

}

// تحديد وظيفة لتوليد جميع التباديل الممكنة للسلسلة

إنشاء الفراغ العام الثابت (String str، int start، int end)

{

// طباعة جميع التباديل

إذا (تبدأ == نهاية -1)

System.out.println (str) ؛

آخر

{

لـ (int i = start؛ i <end؛ i ++)

{

// إصلاح حرف لتبديل السلسلة

str = swapString (str، start، i) ؛

// استدعاء دالة createPermutation () بشكل متكرر لجميع الأحرف المتبقية ، تولد التحويل (str ، start + 1 ، end) ؛

// أداء خوارزمية التراجع لمبادلة الأحرف من جديد

str = swapString (str، start، i) ؛

}

}

}

}

إجراء تقليب في جافا - الناتج المشتق من نموذج التعليمات البرمجية:

عندما تقوم بترجمة وتشغيل هذه العينة ، يجب أن يبدو الإخراج المطلوب مثل هذا إلى حد ما:

فيما يلي جميع التباديل الممكنة للسلسلة ABC:

ABC

ACB

باك

BCA

CBA

سيارة أجرة

يجب أن تقرأ: مواضيع ومشاريع جافا مثيرة للاهتمام

خاتمة

نأمل أن تكون قد وجدت هذا البرنامج التعليمي لإجراء التقليب في JAVA مفيدًا.

إذا كنت مهتمًا بمعرفة المزيد حول Java و OOPs وتطوير البرامج الكاملة ، تحقق من upGrad & IIIT-B's دبلوم PG في تطوير البرامج الكامل المكدس المصمم للمهنيين العاملين ويقدم أكثر من 500 ساعة من التدريب الصارم ، 9 + المشاريع ، والتعيينات ، وحالة خريجي IIIT-B ، ومشاريع التخرج العملية العملية والمساعدة في العمل مع الشركات الكبرى.

استعد لمهنة المستقبل

تعلم موثوق به في الصناعة - شهادة معترف بها في الصناعة.
يتعلم أكثر