الگوریتم مرتبسازی انتخابی (Selection Sort) یکی از انواع الگوریتمهای مرتبسازی در علم کامپیوتر و برنامهنویسی است. این الگوریتم به ازای هر مرحله انتخاب عنصری کمترین مقدار را از بین عناصر باقیمانده در لیست انتخاب کرده و آن را به جایگاه مورد نظر در لیست منتقل میکند. الگوریتم مرتبسازی انتخابی مثل سوراخ گودالکنی است که از ابتدا به آخر لیست حرکت کرده و در هر گام کمترین عنصر باقیمانده را پیدا کرده و به جایگاهش در لیست منتقل میکند. الگوریتم مرتبسازی انتخابی معمولاً از مرتبسازیهای مقدماتی و آموزشی برای ارائه ایده مرتبسازی به افراد جدید به برنامهنویسی استفاده میشود.
الگوریتم مرتبسازی انتخابی به شکل زیر عمل میکند:
- شروع از ابتدا لیست.
- یافتن کمترین عنصر در لیست و مشخص کردن موقعیت آن.
- جابهجایی عنصر کمترین با عنصر ابتدای لیست (یا جایگاه مورد نظر).
- لیست را به یک مرحله بعدی منتقل کنید (یعنی از دومین عنصر شروع کنید و همین مراحل را انجام دهید).
- ادامه تکرار مراحل 2 تا 4 تا زمانی که تمام عناصر مرتب شوند.
الگوریتم مرتبسازی انتخابی نسبت به سایر الگوریتمهای مرتبسازی به نسبت کمتر کارایی دارد، زیرا همواره نیاز به جستجوی کمترین عنصر در لیست دارد و از مقایسههای اضافی برای تعیین ترتیب عناصر استفاده میکند. اما این الگوریتم بسیار آموزنده است و به منظور آموزش مفهوم مرتبسازی به افراد مبتدی بسیار مناسب است.
در زیر یک کد نمونه برای الگوریتم مرتبسازی انتخابی در زبان برنامهنویسی Python ارائه شده است:
def selection_sort(arr):
n = len(arr)
for i in range(n):
# پیدا کردن کمترین عنصر در باقیمانده لیست
min_index = i
for j in range(i + 1, n):
if arr[j] < arr[min_index]:
min_index = j
# جابهجایی کمترین عنصر با عنصر فعلی
arr[i], arr[min_index] = arr[min_index], arr[i]
# نمونه استفاده
arr = [64, 25, 12, 22, 11]
selection_sort(arr)
print("لیست مرتبشده:", arr)
این کد نمونه یک لیست عددی را مرتب میکند و نتیجه مرتبسازی را نمایش میدهد. البته میتوان این الگوریتم را برای لیستهای دیگر و انواع دادهها نیز استفاده کرد.
دیدگاهها