الگوریتم مرتبسازی انتخابی (Selection Sort) یکی از انواع الگوریتمهای مرتبسازی در علم کامپیوتر و برنامهنویسی است. این الگوریتم به ازای هر مرحله انتخاب عنصری کمترین مقدار را از بین عناصر باقیمانده در لیست انتخاب کرده و آن را به جایگاه مورد نظر در لیست منتقل میکند. الگوریتم مرتبسازی انتخابی مثل سوراخ گودالکنی است که از ابتدا به آخر لیست حرکت کرده و در هر گام کمترین عنصر باقیمانده را پیدا کرده و به جایگاهش در لیست منتقل میکند. الگوریتم مرتبسازی انتخابی معمولاً از مرتبسازیهای مقدماتی و آموزشی برای ارائه ایده مرتبسازی به افراد جدید به برنامهنویسی استفاده میشود.
الگوریتم مرتبسازی انتخابی به شکل زیر عمل میکند:
- شروع از ابتدا لیست.
- یافتن کمترین عنصر در لیست و مشخص کردن موقعیت آن.
- جابهجایی عنصر کمترین با عنصر ابتدای لیست (یا جایگاه مورد نظر).
- لیست را به یک مرحله بعدی منتقل کنید (یعنی از دومین عنصر شروع کنید و همین مراحل را انجام دهید).
- ادامه تکرار مراحل 2 تا 4 تا زمانی که تمام عناصر مرتب شوند.
الگوریتم مرتبسازی انتخابی نسبت به سایر الگوریتمهای مرتبسازی به نسبت کمتر کارایی دارد، زیرا همواره نیاز به جستجوی کمترین عنصر در لیست دارد و از مقایسههای اضافی برای تعیین ترتیب عناصر استفاده میکند. اما این الگوریتم بسیار آموزنده است و به منظور آموزش مفهوم مرتبسازی به افراد مبتدی بسیار مناسب است.
در زیر یک کد نمونه برای الگوریتم مرتبسازی انتخابی در زبان برنامهنویسی Python ارائه شده است:
این کد نمونه یک لیست عددی را مرتب میکند و نتیجه مرتبسازی را نمایش میدهد. البته میتوان این الگوریتم را برای لیستهای دیگر و انواع دادهها نیز استفاده کرد.
دیدگاهها