الگوریتم مرتبسازی، در علوم کامپیوتر و ریاضی، الگوریتمی است که لیستی از
دادهها را به ترتیبی مشخص میچیند.پر استفادهترین ترتیبها، ترتیبهای
عددی و لغتنامهای هستند. مرتبسازی کارا در بهینه سازی الگوریتمهایی که
به لیستهای مرتب شده نیاز دارند (مثل جستجو و ترکیب) اهمیت زیادی دارد.
مرتبسازی حبابی یا Bubble sort یک الگوریتم مرتبسازی سادهاست که لیست
را پشت سرهم پیمایش میکند تا هر بار عناصر کنارهم را با هم سنجیده و اگر
در جای نادرست بودند جابهجایشان کند. دراین الگوریتم این کار باید تا
زمانی که هیچ جابهجایی در لیست رخ ندهد، ادامه یابد و در آن زمان لیست
مرتب شدهاست. این مرتبسازی از آن رو حبابی نامیده میشود که هر عنصر با
عنصر کناری خود سنجیدهشده و درصورتی که از آن کوچکتر باشد جای خود را به
آن میدهد و این کار همچنان پیش میرود تا کوچکترین عنصر به پایین لیست
برسد و دیگران نیز به ترتیب در جای خود قرار گیرند (یا به رتبهای بالاتر
روند یا به پایین تر لیست رانده شوند.) این عمل همانند پویش حباب به بالای
مایع است.
این مرتبسازی از آن رو که برای کار با عناصر آنها را با یکدیگر میسنجد، یک مرتبسازی سنجشی است.
با فرض داشتن n عضو در لیست، در بدترین حالت n(n − ۱) / ۲ عمل لازم خواهد
بود.بدترین زمان اجرا و پیچیدگی متوسط مرتب سازی حبابی هر دو (O(n^2
میباشند که در آن n تعداد عناصری است که باید مرتب شوند.
الگوریتمهای مرتب سازی بسیاری وجود دارند که بدترین زمان اجرای آنها از
این بهتر است یا پیچیدگی متوسط آنها (O(n log n است. حتی بقیه اگوریتمهای
مرتب سازی از (O(n^2 مثل [مرتب سازی درجی]، عملکرد بهتری نسبت به مرتب سازی
حبابی از خود نشان میدهند.در ادامه سورس این الگوریتم را برای ++C قرار
می دهیم