مرتب سازی حبابی سی شارپ پلاس
در این نوشته قصد بررسی الگوریتم مرتب سازی حبابی که در اکثر مباحث ساختمان داده بررسی می شود بپردازیم.
در پایان آن را با زبان برنامه نویسی سی شارپ پیاده سازی می کنیم.
پیشنهاد نویسنده : الگوریتم مرتب سازی حبابی با PHP
الگوریتم مرتبسازی حبابی چیست ؟
الگوریتم مرتبسازی ، در دانش رایانه و ریاضی ، الگوریتمی است که بعد از اجرای آن فهرستی از داده ها را به ترتیبی تعریف شده تبدیل می شود.
پرکاربردترین ترتیبها ، ترتیب های عددی (نزولی ، صعودی و …) هستند.
مرتبسازی در بهینهسازی الگوریتم هایی که به فهرستهای مرتب شده نیاز دارند اهمیت بسیار زیادی دارد.
از آغاز علم رایانه مسائل مرتب سازی در ساختمات داده بررسی های فراوانی را متوجه خود ساختند.
شاید به این علت که در عین ساده بودن این عملیات، حل آن به صورت کامل و عملی کمی پیچیده است.
برای نمونه مرتبسازی حبابی در سال ۱۹۵۶ میلادی به وجود آمد؛
در آن زمان بسیاری این را یک مسئله را حل شده میپنداشتند.

مبحث مرتب سازی داده ها در کلاس های معرفی علم رایانه بسیار پرکاربرد و پر بحث می باشد.
مبحثی که در آن وجود الگوریتم های فراوان به آشنایی با ایده های کلی و مراحل طراحی الگوریتم های گوناگون کمک میکند.
مرتبسازی حبابی که به زبان انگلیسی به Bubble sort معروف است یک الگوریتم مرتب سازی بسیار ساده می باشد.
در این الگوریتم داده ها در یک لیست پشت سرهم پیمایش می شوند.
هر بار عناصر کنار هم را با هم مقایسه و اگر در جای نادرست ( با توجه به شرط مرتب سازی ) بودند به جای مناسب خود منتقل کند.
در این الگوریتم این کار باید تا زمانی که هیچ انتقالی در لیست نیاز نباشد رخ دهد ، ادامه یابد و در آن زمان لیست مرتب شدهاست.
در مرتبسازی حبابی هر عنصر با عنصر کناری خود مقایسه شده و در صورتی که از آن کوچک تر باشد جای خود را به آن میدهد.
این کار همچنان پیش میرود تا کوچک ترین عنصر داده ای به پایین لیست برسد و دیگران نیز به ترتیب در جای خود قرار گیرند.
مرتب سازی حبابی با c#
کد این الگوریتم را در زیر مشاهده می کنید:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WpfApplication { public class Sort { /* public string showArr() { string result = ""; for (int i = 0; i <= 9; i++) { result += a[i] + " - "; } return result; } */ public void hobab(ref int[] a) { for (int i = 0; i <= 9; i++) { for (int j = 0; j <= 8; j++) { if (a[j] > a[j + 1]) { int x; x = a[j + 1]; a[j + 1] = a[j]; a[j] = x; } } } } } }
برای یادگیری مفاهیم ساختمان داده کتاب ساختمان داده را دانلود کنید.
اگر کد مناسب تری از این الگوریتم در دسترس دارید آنرا برای ما ارسال کنید.
موفق باشید.
ارسال پاسخ