در این نوشته قصد بررسی الگوریتم مرتب سازی حبابی که در اکثر مباحث ساختمان داده بررسی می شود بپردازیم و در پایان آن را با زبان برنامه نویسی PHP پیاده سازی می کنیم.
الگوریتم مرتبسازی حبابی چیست ؟
الگوریتم مرتبسازی ، در دانش رایانه و ریاضی ، الگوریتمی است که بعد از اجرای آن فهرستی از داده ها را به ترتیبی تعریف شده تبدیل می شود. پرکاربردترین ترتیبها ، ترتیب های عددی ( نزولی ، صعودی و … ) هستند. مرتبسازی در بهینهسازی الگوریتم هایی که به فهرستهای مرتب شده نیاز دارند اهمیت بسیار زیادی دارد. از آغاز علم رایانه مسائل مرتب سازی در ساختمات داده بررسی های فراوانی را متوجه خود ساختند ، شاید به این علت که در عین ساده بودن این عملیات ، حل آن به صورت کامل و عملی کمی پیچیده است. برای نمونه مرتبسازی حبابی در سال ۱۹۵۶ میلادی به وجود آمد؛ در آن زمان بسیاری این را یک مسئله را حل شده میپنداشتند. مبحث مرتب سازی داده ها در کلاس های معرفی علم رایانه بسیار پرکاربرد و پر بحث می باشد ، مبحثی که در آن وجود الگوریتم های فراوان به آشنایی با ایده های کلی و مراحل طراحی الگوریتم های گوناگون کمک میکند.
مرتبسازی حبابی که به زبان انگلیسی به Bubble sort معروف است یک الگوریتم مرتب سازی بسیار ساده می باشد. در این الگوریتم داده ها در یک لیست پشت سرهم پیمایش می شوند تا هر بار عناصر کنار هم را با هم مقایسه و اگر در جای نادرست ( با توجه به شرط مرتب سازی ) بودند به جای مناسب خود منتقل کند. در این الگوریتم این کار باید تا زمانی که هیچ انتقالی در لیست نیاز نباشد رخ دهد ، ادامه یابد و در آن زمان لیست مرتب شدهاست. در مرتبسازی حبابی هر عنصر با عنصر کناری خود مقایسه شده و در صورتی که از آن کوچک تر باشد جای خود را به آن میدهد و این کار همچنان پیش میرود تا کوچک ترین عنصر داده ای به پایین لیست برسد و دیگران نیز به ترتیب در جای خود قرار گیرند.
موضوع آموزش :
پیاده سازی الگوریتم مرتب سازی حبابی با زبان پی اچ پی ( PHP )
کد ::
<?php function bubblesort($a1,$a2) { for($i = sizeof($a1); $i >= 1; $i--) { for($j = 1; $j <= $i; $j++) { if($a1[$j-1] > $a1[$j]) { $t = $a1[$j-1]; $t2 = $a2[$j-1]; $a1[$j-1] = $a1[$j]; $a2[$j-1] = $a2[$j]; $a1[$j] = $t; $a2[$j] = $t2; } } } } ?>
توضیحات :
کد بالا به زبان پی اچ پی می باشد .
برنامه ی بالا باید در کنار پروژه ی اصلی شما قرار بگیرد تا کاراریی اصلی خود را در پروژه های بزرگ تر نمایان کند.
این برنامه به صورت ساخت یافته می باشد و از اصول شی گرا به دلیل ساده بودن کار استفاده نشده است.
خب کد بالا می تواند مرجع مناسبی برای طراحی الگوریتم حبابی به طور کامل باشد در صورت تکمیل این کد حتما آن را برای ما ارسال کنید تا در اختیار دیگران هم قرار بگیرد.
موفق و پیروز باشید.
ثبت نظر