اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

لنفرض أن لدينا المصفوفة التالية ونريد أن نرتبها تصاعديا بإستخدام خوارزمية الفرز الفقاعي:

[ 5, 10, 11 , 2, 1 ]

خطوات حل المشكلة:

1. سنبدأ من أول عنصر في المصفوفة ونقارنه مع العنصر الذي يليه، في حال أن العنصر الأول أكبر من العنصر الثاني نقوم بتبديل العناصر.

هل 1 أكبر من 2 ؟ لا  إذا نكمل المقارنة للعناصر التالية.

2. هل العنصر الثاني ( 2 ) أكبر من العنصر الثالث ( 11 ) ؟ لا

3. هل العنصر 3 ( 11 ) أكبر من العنصر 4 ( 10 ) ؟ نعم، إذا نقوم بتبديل العناصر حيث ستكون المصفوفة بعد التبديل كالتالي:

[ 5, 11, 10 , 2, 1 ]

4. هل العنصر 4 ( 11 ) أكبر من العنصر 5 ( 5)؟ نعم، إذا نقوم بتبديل العناصر مرة أخرى بحيث تصبح المصفوفة:

[11, 5, 10 , 2, 1 ]

عندما نصل إلى نهاية المصفوفة  تنتهي الجولة الأولى في ترتيب العناصر، هيا نبدأ الجولة الثانية بحيث نبدأ المقارنة من العنصر الثاني في المصفوفة ( 2 ) وصولا للرابع ( 5 ).

لاحظي أننا إستثنينا العنصر الأول والأخير في الجولة الثانية من المقارنة.

نبدأ الجولة الثانية:

1. هل العنصر الثاني ( 2 ) أكبر من العنصر الثالث ( 10 ) لا، إذا نكمل المقارنة.

2.  هل العنصر الثالث ( 10 ) أكبر من العنصر الرابع ( 5 ) نعم، إذا نبدل العناصر حيث تصبح المصفوفة كالتالي:

[11, 10, 5 , 2, 1 ]

وهكذا نكون قد حصلنا على مصفوفة مرتبة تصاعديا.

 

مرفق صور توضيحية لعملية الفرز الفقاعي.

Pass-1.png

Pass-2.png

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...