كيفية تطبيق Bubble Sort في Python؟



في هذه المدونة ، ستتعلم رمز وشرح فرز قائمة بايثون باستخدام فرز الفقاعات باستخدام طريقة المبادلة.

الفرز يعني ترتيب أي بيانات بترتيب تصاعدي أو تنازلي وفقًا لبعض العلاقات الخطية بين العناصر. هذه المقالة على Bubble Sort in سيساعدك على فهم هذا المفهوم بالتفصيل.

سنغطي الموضوعات التالية في هذه المدونة:





ما هو Bubble Sort؟

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

خطوات إجراء فرز الفقاعة

  • قارن العنصر الأول والثاني في القائمة وقم بالتبديل إذا كانا بالترتيب الخاطئ.
  • قارن بين العنصر الثاني والثالث وقم بتبديلهما إذا كانا بالترتيب الخطأ.
  • استمر بالمثل حتى العنصر الأخير في القائمة بطريقة مماثلة.
  • استمر في تكرار جميع الخطوات المذكورة أعلاه حتى يتم فرز القائمة.

ستكون الخطوات المذكورة أعلاه أكثر وضوحًا من خلال التصورات التالية -



فرز الفقاعات في Python - Edureka



خوارزمية فرز الفقاعات

الآن دعونا نلقي نظرة على الخوارزمية وراء Bubble Sort.

أول إجتياز:

( 16.19 ، 11 ، 15 ، 10) -> ( 16.19 ، 11 ، 15 ، 10) - تقارن الخوارزمية أول عنصرين وتبادلت منذ 19> 16

(16 ، 19.11 ، 15.10) -> (16 ، 11.19 ، 15.10) - المقايضة منذ 19> 11

(16.11 ، 19.15 ، 10) -> (16،11 ، 15.19 ، 10) - مقايضة منذ 19> 15

(16،11،15 ، 19.10 ) -> (16،11،15 ، 10.19 ) - الآن ، نظرًا لأن هذه العناصر موجودة بالفعل بالترتيب الصحيح (19> 10) ، فإن الخوارزمية لا تتبادلها.

المرور الثاني:

( 16.11 ، 15 ، 10 ، 19) -> ( 11.16 ، 15،10،19) - مقايضة منذ 16> 11

( أحد عشر، 16.15 ، 10.19) -> (11 ، 15.16 ، 10،19) - مبادلة منذ 16> 15

(11.15 ، 16.10 ، 19) -> (11 ، 15 ، 10.16 ، 19) - مبادلة منذ 16> 10

(11،15،10،16،19) -> (11،15،10،16،19)

ال يتم فرزها ، ولكن لا تعرف خوارزمية ما إذا كانت قد اكتملت. ومن ثم ، فإنه يحتاج إلى تمريرة كاملة أخرى دون أي مبادلة لمعرفة أنه تم فرزها.

المرور الثالث:

( أحد عشر، 15.10 ، 16،19) -> (11 ، 15.10 ، 16،19)

( أحد عشر، 15.10 ، 16،19) -> (11 ، 10.15 ، 16،19) - مبادلة منذ 15> 10

(11 ، 10 ، 15 ، 16 ، 19) -> (11 ، 10 ، 15 ، 16 ، 19)

جافا نسخة عميقة مقابل نسخة ضحلة

(11 ، 10 ، 15 ، 16 ، 19) -> (11 ، 10 ، 15 ، 16 ، 19)

الممر الرابع:

( 11.10 ، 15،16،19) -> ( 10.11 ، 15،16،19) - مقايضة منذ 11> 10

الناتج النهائي هو (10،11،15،16،19)

دعونا الآن نبرمج هذا -

برنامج Python لتنفيذ Bubble Sort

أ = [16 ، 19 ، 11 ، 15 ، 10 ، 12 ، 14]

# تكرار الحلقة len (a) (عدد العناصر) عدد المرات لـ j في النطاق (len (a)): # تم التبديل مبدئيًا بشكل خاطئ = False i = 0 بينما ia [i + 1]: # swapping a [i ]، a [i + 1] = a [i + 1]، a [i] # تغيير قيمة المبادلة المبادلة = True i = i + 1 # إذا تم التبديل غير صحيح ثم تم فرز القائمة # يمكننا إيقاف الحلقة إذا تم التبديل == خطأ: فاصل الطباعة (أ)
 انتاج: 


في الكود أعلاه ، نقارن الأرقام المتجاورة ونتبادلها إذا لم تكن بالترتيب الصحيح. كرر نفس العملية لين (أ) عدة مرات. لقد قمنا بتعيين متغير 'مبادلة' وجعلناه 'صحيحًا' إذا تم تبديل أي عنصرين في التكرار. وإذا لم يكن هناك تبادل للعناصر ، فسيتم فرز القائمة بالفعل ، وبالتالي ، لا يوجد تغيير في قيمة 'المبادلة' ويمكننا كسر الحلقة.

بهذا ، وصلنا إلى نهاية المدونة بعنوان 'كيفية تنفيذ Bubble Sort في Python'. آمل أن يضيف المحتوى قيمة إلى معرفتك ببايثون.

تأكد من ممارسة أكبر قدر ممكن وإعادة تجربتك.

لديك سؤال لنا؟ يرجى ذكر ذلك في قسم التعليقات في مدونة 'كيفية تطبيق Bubble Sort في Python' وسنعاود الاتصال بك في أقرب وقت ممكن.

للحصول على معرفة متعمقة حول Python مع تطبيقاتها المختلفة ، يمكنك التسجيل في البث المباشر مع دعم على مدار الساعة طوال أيام الأسبوع وإمكانية الوصول مدى الحياة.