مرتب سازی انتخابی (Selection Sort) در ++c :
مرتب سازی انتخابی (Selection Sort) یک الگوریتم مرتب سازی است که در آن لیستی از اعداد را به ترتیب صعودی یا نزولی مرتب می کند. این الگوریتم بر اساس انتخاب و جابجایی اعداد استوار است. در این مقاله، الگوریتم مرتب سازی انتخابی به زبان ++C بررسی می شود.
در الگوریتم مرتب سازی انتخابی، ابتدا آرایه ای نامرتب ورودی گرفته می شود. سپس از عضو اول آرایه شروع می کنیم و اعداد را به ترتیب بررسی می کنیم. به طور دقیق تر، برای هر عضو در آرایه، سایر عناصر را چک می کنیم و کمترین عدد را پیدا می کنیم. سپس این کمترین عدد را با عضو فعلی جابجا می کنیم. این عمل را تا انتهای آرایه تکرار می کنیم تا همه عناصر به ترتیب مرتب شوند.
الگوریتم مرتب سازی انتخابی در زیر به زبان ++C آورده شده است:
“`cpp
#include
using namespace std;
void selectionSort(int arr[], int n) {
int i, j, minIndex, temp;
for (i = 0; i < n-1; i++) {
minIndex = i;
for (j = i+1; j < n; j++)
if (arr[j] < arr[minIndex])
minIndex = j;
temp = arr[minIndex];
arr[minIndex] = arr[i];
arr[i] = temp;
}
}
int main() {
int arr[] = {64, 25, 12, 22, 11};
int n = sizeof(arr)/sizeof(arr[0]);
selectionSort(arr, n);
cout << “Sorted array: \n”;
for (int i=0; i < n; i++)
cout << arr[i] << ” “;
return 0;
}
“`
در این کد، تابع `selectionSort` آرایه و تعداد عناصر آن را به عنوان ورودی می گیرد. سپس با استفاده از دو حلقه `for`، اعداد را به ترتیب مرتب می کند. حلقه داخلی برای یافتن کمترین عدد در هر مرحله استفاده می شود و حلقه خارجی برای تکرار این عمل برای تمام عناصر آرایه صورت می گیرد.
در نهایت، آرایه مرتب شده در تابع `main` چاپ می شود.
با استفاده از این الگوریتم، می توانیم آرایه های بزرگ را به ترتیب مرتب کنیم. الگوریتم مرتب سازی انتخابی با پیچیدگی زمانی O(n^2) عمل می کند. بنابراین برای آرایه های بزرگ، عملکرد آن بهبود چشمگیری ندارد و ممکن است بهتر باشد از الگوریتم های مرتب سازی دیگر مانند مرتب سازی حبابی یا مرتب سازی ادغامی استفاده کرد.