Bubble Sort یکی از سادهترین الگوریتمهای مرتبسازی است که عناصر یک آرایه را به ترتیب صعودی یا نزولی مرتب میکند.
- مقایسهی دو عنصر مجاور
- اگر ترتیب اشتباه باشد، آنها را جابجا (swap) میکنیم
- بزرگترین عنصر در هر حلقه داخلی، مانند حبابی که به سطح میآید، به انتهای آرایه میرود.
- پیمایش آرایه از ابتدا تا انتها
- مقایسه عناصر مجاور (
A[j-1]وA[j]) - جابجایی اگر عنصر اول بزرگتر از عنصر دوم باشد
- تکرار این روند برای آرایه کوچکشده (آخرین عناصر مرتب شده را نادیده میگیریم)
- پایان وقتی هیچ جابجایی لازم نباشد
آرایه اولیه: [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]
-
نام انگلیسی: Bubble Sort
-
پیچیدگی زمانی (Time Complexity):
- بدترین حالت: (O(n^2))
- بهترین حالت (آرایه مرتب شده): (O(n)) در نسخههای بهینه
-
مزایا:
- پیادهسازی ساده
- مناسب برای آموزش الگوریتمهای مرتبسازی
-
معایب:
- کند برای آرایههای بزرگ
- نسبت به الگوریتمهای مدرن مانند Merge Sort و Quick Sort کارایی پایینتری دارد
./03_bubble_sort 5 4 2 7 1 35 = تعداد آرایه
خروجی:
1 2 3 4 7