توضیحات
در این قسمت تیم کدگیت سورس مرتب سازی هرمی در جاوا را برای شما تهیه کرده است. مرتبسازی یکی از مسائلی است که از دیرباز مطرح بوده که راهحلهای مختلفی برای آن ارائه گردیده است. این قسمت سورس که تهیه گردیده یکی از روشهای حل این مسئله است. پس با ما همراه باشید را مرتبسازی هرمی را توضیح دهیم. همچنین پیشنهاد میکنیم از دیگر سورسهای ما دیدن کنید:
سورس مرتب سازی هرمی در جاوا
الگوریتمهای مرتب سازی یکی از مسائلی است که تقریباً همه ما با آن روبرو شدیم. اعدادی را به ترتیب بزرگ به کوچک میبایست مرتب کنیم. راهحل آن ممکن است بسیار ساده باشد اما تاکنون الگوریتمهای مختلفی برای این کار ارائه گردیده است. مرتب سازی هرمی یکی از این راهحل ها است. مرتب سازی هرمی یکی از قدیمیترین الگوریتمهاست. ابتدا مجموعهای از اعداد نامرتب به الگوریتم مرتب سازی هرمی می دهیم و در خروجی مجموعه مرتب به شما تحویل میشود.
روش کار الگوریتم
لیستی از اعداد نامرتب در نظر بگیرید. این الگوریتم با کمک ساخت یک Heap یا هرم اقدام به مرتب سازی لیست میکند. هرم یا هیپ (heap) یک ساختمان دادهی درخت (ساختار داده) است که شرط «اگر B بچه A بود، آنگاه مقدار گره A بزرگتر مساوی مقدار گره B باشد» را ارضا کند. این مسئله بیانگر این است که گره با بیشترین مقدار همواره در ریشه قرار میگیرد و بنابراین چنین هیپی، هیپ بیشینه نامیده میشود. با کمک ساخت هرم بیشینه الگوریتم مرتب سازی هرمی عناصر خود را مرتب می کند. بعد از ساخت هیپ بیشینه، هر بار عنصر ریشه بزرگترین عدد هرم است را حذف می کند با این کار عناصر را به ترتیب مرتب خواهند شد. اگر تعداد خانههای لیست n باشد زمان اجرای الگوریتم در بدترین حالت O(N*logn) میباشد.
نحوه اجرای سورس کد
بعد از تهیه سورس کد از سایت کدگیت، یک فایل جاوا با فرمت .java در اختیار شما قرار میگیرد. نام این فایل Heapsort.java میباشد. این فایل اصلی برنامه بوده و با اجرای آن میتوانید الگوریتم مرتب سازی هرمی را اجرا نمایید. پس از اجرای برنامه خروجی زیر را مشاهده خواهید کرد:
array before sort
55 11 66 22 1 0
Sorted array is
0 1 11 22 55 66