Skip to content

Latest commit

 

History

History
69 lines (46 loc) · 2.28 KB

File metadata and controls

69 lines (46 loc) · 2.28 KB

📘 Bubble Sort (مرتب‌سازی حبابی)

1️⃣ تعریف

Bubble Sort یکی از ساده‌ترین الگوریتم‌های مرتب‌سازی است که عناصر یک آرایه را به ترتیب صعودی یا نزولی مرتب می‌کند.

  • مقایسه‌ی دو عنصر مجاور
  • اگر ترتیب اشتباه باشد، آن‌ها را جابجا (swap) می‌کنیم
  • بزرگ‌ترین عنصر در هر حلقه داخلی، مانند حبابی که به سطح می‌آید، به انتهای آرایه می‌رود.

2️⃣ مکانیزم کاری

  1. پیمایش آرایه از ابتدا تا انتها
  2. مقایسه عناصر مجاور (A[j-1] و A[j])
  3. جابجایی اگر عنصر اول بزرگ‌تر از عنصر دوم باشد
  4. تکرار این روند برای آرایه کوچک‌شده (آخرین عناصر مرتب شده را نادیده می‌گیریم)
  5. پایان وقتی هیچ جابجایی لازم نباشد

مثال

آرایه اولیه: [5, 2, 8, 3]

  • مرحله اول: مقایسه 5 و 2 → جابجا → [2, 5, 8, 3] مقایسه 5 و 8 → درست → [2, 5, 8, 3] مقایسه 8 و 3 → جابجا → [2, 5, 3, 8]

  • مرحله دوم: مقایسه 2 و 5 → درست مقایسه 5 و 3 → جابجا → [2, 3, 5, 8]

  • مرحله سوم: مقایسه 2 و 3 → درست مقایسه 3 و 5 → درست

  • نتیجه نهایی: [2, 3, 5, 8]


3️⃣ ویژگی‌ها و نکات آموزشی

  • نام انگلیسی: Bubble Sort

  • پیچیدگی زمانی (Time Complexity):

    • بدترین حالت: (O(n^2))
    • بهترین حالت (آرایه مرتب شده): (O(n)) در نسخه‌های بهینه
  • مزایا:

    • پیاده‌سازی ساده
    • مناسب برای آموزش الگوریتم‌های مرتب‌سازی
  • معایب:

    • کند برای آرایه‌های بزرگ
    • نسبت به الگوریتم‌های مدرن مانند Merge Sort و Quick Sort کارایی پایین‌تری دارد

🧪 مثال اجرا

./03_bubble_sort 5  4 2 7 1 3

5 = تعداد آرایه

خروجی:

1 2 3 4 7