مقدمة عن خوارزمية Bubble Sort
تعتبر خوارزمية Bubble Sort واحدة من أبسط وأقدم الخوارزميات المستخدمة في ترتيب القوائم. تعتمد خوارزمية Bubble Sort على فكرة التمرير المتكرر على القائمة المطلوب ترتيبها، ومقارنة كل عنصر مع العنصر الذي يليه. إذا كان العنصر الأول أكبر من العنصر الثاني، يتم تبديل مواقعهما. تستمر هذه العملية حتى يتم ترتيب القائمة بالكامل. على الرغم من أن خوارزمية Bubble Sort ليست الأكثر كفاءة من حيث الأداء، إلا أنها تعتبر وسيلة تعليمية ممتازة لفهم أساسيات الترتيب والخوارزميات.
تنفيذ خوارزمية Bubble Sort في بايثون
يمكن تنفيذ خوارزمية Bubble Sort في لغة البرمجة بايثون بسهولة. نبدأ بإنشاء دالة تقوم بترتيب قائمة من الأرقام باستخدام هذه الخوارزمية. تعتمد الخوارزمية على حلقة تكرارية تمر عبر القائمة وتقارن كل زوج من العناصر المجاورة، مع تبديل مواقعها إذا كانت غير مرتبة. تستمر العملية حتى لا يحدث أي تبديل في تمريرة كاملة عبر القائمة، مما يعني أن القائمة مرتبة.
def bubble_sort(arr):
n = len(arr)
for i in range(n):
swapped = False
for j in range(0, n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
swapped = True
if not swapped:
break
return arr
في هذا المثال، نقوم بإنشاء دالة تسمى bubble_sort التي تأخذ قائمة كمدخل. نستخدم حلقتين متداخلتين؛ الحلقة الخارجية تمر عبر جميع عناصر القائمة، بينما الحلقة الداخلية تقوم بمقارنة كل عنصر مع العنصر التالي وتبديلهما إذا كانا في ترتيب خاطئ. إذا لم يحدث أي تبديل في تمريرة كاملة، يتم الخروج من الحلقة مبكرًا لتحسين الأداء.
أمثلة تطبيقية على Bubble Sort
لنلقِ نظرة على بعض الأمثلة العملية لكيفية استخدام خوارزمية Bubble Sort لترتيب القوائم في بايثون. في المثال الأول، سنقوم بترتيب قائمة من الأعداد الصحيحة بترتيب تصاعدي:
numbers = [64, 34, 25, 12, 22, 11, 90]
sorted_numbers = bubble_sort(numbers)
print("Sorted array:", sorted_numbers)
في المثال الثاني، سنقوم بترتيب قائمة من الأعداد العشرية:
decimal_numbers = [3.4, 2.1, 5.6, 1.2, 4.8]
sorted_decimal_numbers = bubble_sort(decimal_numbers)
print("Sorted decimal numbers:", sorted_decimal_numbers)
يمكن استخدام هذه الخوارزمية أيضًا لترتيب القوائم التي تحتوي على سلاسل نصية، بشرط أن تكون جميع العناصر من نفس النوع. على الرغم من بساطة خوارزمية Bubble Sort، إلا أنها تقدم فائدة تعليمية كبيرة في فهم كيفية عمل الترتيب في البرمجة.
