# مرتبسازی حبابی جلسهی پنجم · مبانی الگوریتم
Note: یادآوری کوتاه جلسهی قبل دربارهی آرایهها. --- ## اهداف این جلسه در پایان این جلسه میتوانید: - ایدهی مرتبسازی حبابی را توضیح دهید - آن را روی یک آرایهی کوچک دستی اجرا کنید - پیچیدگی زمانی آن را بگویید --- ## ایدهی اصلی - عنصرهای کنار هم را مقایسه کن - اگر ترتیبشان درست نیست، جابهجا کن - بزرگترین عنصر مثل حباب به آخر آرایه میرسد Note: با پنج دانشآموز داوطلب و کارتهای عدد، الگوریتم را روی تخته اجرا کنید. --- ## مثال | دور | آرایه | |---|---| | شروع | 5، 2، 8، 1 | | دور اول | 2، 5، 1، 8 | | دور دوم | 2، 1، 5، 8 | | دور سوم | 1، 2، 5، 8 | --- ## کد ```python def bubble_sort(items): for end in range(len(items) - 1, 0, -1): for i in range(end): if items[i] > items[i + 1]: items[i], items[i + 1] = items[i + 1], items[i] return items ``` --- ## تمرین کلاسی 1. آرایهی 4، 3، 2، 1 را مرتب کنید 2. چند جابهجایی لازم شد؟ 3. بهترین حالت ورودی کدام است؟ --- ## جمعبندی و تکلیف - پیچیدگی زمانی: در بدترین حالت از مرتبهی n² - ساده، اما برای دادههای بزرگ کند است - **تکلیف:** مرتبسازی انتخابی را مطالعه کنید