دمج برنامج الفرز في Java: الفرق بين دمج الفرز و Quicksort
نشرت: 2021-05-25جدول المحتويات
مقدمة عن برنامج دمج الفرز في جافا
كما يوحي الاسم ، فإن برنامج فرز الدمج في JAVA هو خوارزمية فرز. تم تصورها بشكل كلاسيكي كخوارزمية فرق تسد في جافا. يعمل برنامج فرز الدمج في Java عن طريق تقسيم مصفوفة الإدخال بشكل متكرر إلى مشكلتين أو أكثر من المشاكل الفرعية المكونة لها حتى تصبح بسيطة بما يكفي ليتم حلها مباشرة.
يمكن أن تكون المشاكل الفرعية المكونة إما متشابهة أو مرتبطة إلى حد ما بالمشكلة الرئيسية. يتم بعد ذلك دمج الحلول الفردية لكل مشكلة فرعية للوصول إلى حل المشكلة الأصلية الأصلية.
كيف يعمل برنامج دمج الفرز في جافا؟
كما تم تكراره سابقًا ، فإن برنامج فرز الدمج في JAVA هو خوارزمية فرق تسد. إنه نوع مستقر مما يعني أن عناصر المصفوفة تحافظ على مواضعها الأصلية بالنسبة لبعضها البعض خلال عملية الفرز.
- يقسم: في هذه الخطوة ، يتم تقسيم مصفوفة الإدخال إلى نصفيها المكونين. تتكرر هذه الخطوة باستمرار لجميع المصفوفات النصفية الناتجة حتى لا يكون هناك المزيد من أنصاف المصفوفات لتقسيمها بشكل أكبر.
- قهر: في هذه الخطوة ، يتم فرز المصفوفات المقسمة ودمجها من أسفل إلى أعلى للوصول إلى المصفوفة المرتبة النهائية.
الفرق بين Quicksort و Merge Sort Program في جافا
على الرغم من التشابه الوظيفي ، إلا أنه يجب التركيز على الاختلاف الأساسي بين الترتيب السريع والدمج في جافا.
- الآلية : Quicksort هي خوارزمية فرز داخلية في المكان ، في حين أن mergesort هي خوارزمية فرز خارجية خارج المكان. في التصنيف السريع ، يتم فرز العناصر على أساس عنصر أساسي يعرف باسم المحور. المحور المحوري بشكل عام هو القيمة الوسطى في مصفوفة الإدخال. يتم دفع العناصر ذات القيمة الأقل من المحور إلى الجانب الأيسر للمحور ، بينما يتم دفع العناصر ذات القيمة الأكبر إلى الجانب الأيمن للمحور. هنا ، يُشار إلى الجانب الأيسر بالقسم الأيسر ، ويُشار إلى الجانب الأيمن باسم القسم الأيمن. على العكس من ذلك ، يقسم الترتيب المدمج المصفوفة إلى صفيفتين فرعيتين (n / 2) بشكل متكرر حتى يتم ترك عنصر واحد فقط. ثم يقوم بدمج المصفوفات الفرعية لتكوين المصفوفة التي تم فرزها.
- التطبيق: بينما يعد التصنيف السريع مناسبًا للصفائف الصغيرة ، يعمل الترتيب المدمج مع أي مجموعة ، بغض النظر عن حجمها.
- السرعة : في حالة الفرز السريع ، كلما كانت مجموعة البيانات أصغر ، زادت سرعة الخوارزمية. من ناحية أخرى ، يعمل الترتيب المدمج بسرعة ثابتة لجميع مجموعات البيانات.
- متطلبات المساحة واستخدام الذاكرة: كما ذكرنا سابقًا ، يعد ترتيب الدمج خوارزمية فرز خارجية خارج المكان. تعقيده المكاني هو O (n). لذلك ، يتطلب تخزينًا إضافيًا لـ (O (n)) لفرز الصفيف الإضافي.
اقرأ أيضًا: أنواع الأحرف في Java مع أمثلة
الوقت- تحليل التعقيد لبرنامج دمج الفرز في جافا
برنامج فرز الدمج في JAVA لديه تعقيد زمني لـ O (n * log n). وفقًا للبحث الثنائي ، كلما تم تقسيم رقم إلى نصفين في كل خطوة ، يمكن تمثيله بالدالة اللوغاريتمية 'log n'. يمكن تمثيل عدد الخطوات (على الأكثر) بواسطة log n +1. منتصف أي مجموعة فرعية هو O (1).
وبالتالي ، لدمج المصفوفات الفرعية ، سيكون وقت تشغيل O (n) مطلوبًا. ومن ثم ، فإن الوقت الإجمالي لبرنامج فرز الدمج في JAVA يصبح n (log n +1). يرقى هذا إلى تعقيد زمني لـ O (n * log n) في جميع الحالات الثلاث (الأسوأ والمتوسط والأفضل) حيث يستغرق فرز الدمج دائمًا وقتًا خطيًا لدمج نصفين.
تعلم دورات البرمجيات عبر الإنترنت من أفضل الجامعات في العالم. اربح برامج PG التنفيذية أو برامج الشهادات المتقدمة أو برامج الماجستير لتتبع حياتك المهنية بشكل سريع.
تلخيص لما سبق
تمامًا كما أن البيانات المصنفة للبشر سليمة منطقيًا وأسهل في الفهم ، فإن المصفوفات المصنفة تكون أكثر قابلية للإدارة من قبل أجهزة الكمبيوتر للعمل معها. هذا هو المكان الذي يثبت فيه برنامج فرز الدمج في JAVA أنه مفيد. إنها خوارزمية فرز فعالة وذات أغراض عامة وقائمة على المقارنة.
إذا كنت مهتمًا بمعرفة المزيد حول Java ، تطوير البرامج الكاملة ، فراجع برنامج upGrad & IIIT-B's Executive PG في تطوير البرامج الكامل المكدس المصمم للمهنيين العاملين ويقدم أكثر من 500 ساعة من التدريب الصارم ، 9+ المشاريع ، والمهام ، وحالة خريجي IIIT-B ، ومشاريع التخرج العملية العملية والمساعدة في العمل مع الشركات الكبرى.
ما هو الفرز في البرمجة؟
الفرز هو أسلوب وضع الأشياء في ترتيب معين. يتم القيام بذلك عادة لجعلها أكثر قابلية للإدارة ، أو لتسهيل الوصول إليها. في علوم الكمبيوتر ، لدينا خوارزميات الفرز لهياكل البيانات. يمكن تقسيم خوارزميات الفرز إلى فئتين. الأول هو خوارزميات الفرز القائمة على المقارنة والآخر هو خوارزميات الفرز القائمة على الإدراج. في خوارزميات الفرز القائمة على المقارنة ، تتم مقارنة عنصر بعنصر آخر للعثور على مفتاح الفرز المطابق ، وهو المفتاح الوحيد المشترك بينهما. في خوارزميات الفرز القائمة على الإدراج ، يُضاف العنصر الجديد إلى مقدمة المصفوفة ويتحول العنصر الموضوع في النهاية إلى البداية.
ما هي أنواع خوارزميات الفرز في البرمجة؟
يتم تصنيف خوارزميات الفرز في الغالب إلى 3 أنواع: الفرز المتسلسل ، الفرز المتوازي ، الفرز التقسيم. الفرز المتسلسل أسهل في الفهم. هو الذي نستخدمه عندما نقوم بالفرز في رؤوسنا. يتم فرز كل شيء من الأصغر إلى الأكبر. أكثر خوارزميات الفرز التسلسلي شيوعًا هي فرز الإدراج وفرز الفقاعة والفرز السريع والدمج. كل خوارزميات الفرز هذه يمكن أن تكون متوازية بسهولة. في حالة الفرز المتوازي ، تعتمد كل مهمة على نتيجة المهمة السابقة. لذلك ، ترتيب الإخراج غير مضمون. يتم استخدام خوارزميتين للفرز المتوازيين وهما الفرز الطوبولوجي والترتيب التصاعدي. تحاول خوارزميات الفرز التقسيم تقسيم مصفوفة الإدخال بحيث يمكن فرز كل صفيف فرعي على حدة. تتضمن خوارزميات الفرز التقسيم البحث الثنائي ، والتسلسل ، وفرز الكومة ، وفرز الجذر.
ما هي الفروق بين دمج الفرز و الفرز السريع؟
فرز الفرز هو خوارزمية فرق تسد. يقوم بتقسيم القائمة إلى قسمين بناءً على عنصر محوري ، ويقوم بفرز كل قسم بشكل متكرر ثم يدمج الإخراج. يمكن إجراء خطوة الدمج بفرز دمج متوازي. الفرز السريع هو خوارزمية فرز O (nlogn). إنها خوارزمية أبسط بكثير ، ولكن يجب أن ترتكز على عنصر مصفوفة عشوائية في كل مرة.