مرتب‌سازی هرمی: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
خط ۱۱:
'''مرتب‌سازی هرمی''' {{به انگلیسی|Heapsort}}، نوعی [[الگوریتم]] است که در آن از مقایسه برای چینش یک [[آرایه (رایانه)|آرایه]] یا فهرست استفاده می‌شود. این الگوریتم بخشی از خانوادهٔ [[مرتب‌سازی انتخابی]] است. با وجود اینکه در اکثر رایانه‌ها از الگوریتم [[مرتب‌سازی سریع|چینش سریع]] کندتر است ولی در بدترین حالت سرعت بالاتری (<math>O(n\log n)</math>) را دارا می‌باشد. این الگوریتم [[در-محل|در محل]] است، ولی حالت [[الگوریتم پایدار|پایداری]] ندارد.
 
در این مرتب‌سازی، ابتدا از کل آرایه داده شده یک [[درخت مکس هیپ]] (یا [[درخت مین هیپ]]) می‌سازد. سپس بزرگترین مقدار را برمی‌دارد و در انتهای آرایه مرتب شده قرار می‌دهد. بعد از حدفحذف بزرگترین مقدار، دوباره از بقیه اعداد یک درخت مکس هییپهیپ می‌سازد تا دومین عدد بزرگ یافت شود. بزرگ‌ترین مقدار در بین مقادیر باقی مانده را برمی‌دارد و آن را در مکان یکی قبل از انتهای آرایه قرار می‌دهد. این کار تا زمانی که هیچ مقداری در هرم باقی نماند و آرایه مرتب شده کامل شود، تکرار می‌شود.
 
یکی از روش‌های مرتب‌سازی داده‌هااست، که براساس خصوصیات درخت heap پیاده‌سازی شده‌است.