Thuật toán Sắp xếp Lựa chọn sắp xếp một triển lãm bằng cách nhiều lần tìm thành phần cơ sở từ phần chưa được sắp xếp và đưa nó vào đầu. Trong mỗi lần nhấn mạnh của sắp xếp xác định, thành phần cơ sở từ mảng con chưa được sắp xếp được chọn và chuyển đến mảng con đã sắp xếp.
Ví dụ
#include <iostream> #include <string.h> using namespace std; #define MAX_LEN 50 void selectionSort(char arr[][50], int n){ int i, j, mIndex; // Move boundary of unsorted subarray one by one char minStr[50]; for (i = 0; i < n-1; i++){ // Determine minimum element in unsorted array int mIndex = i; strcpy(minStr, arr[i]); for (j = i + 1; j < n; j++){ // check whether the min is greater than arr[j] if (strcmp(minStr, arr[j]) > 0){ // Make arr[j] as minStr and update min_idx strcpy(minStr, arr[j]); mIndex = j; } } // Swap the minimum with the first element if (mIndex != i){ char temp[50]; strcpy(temp, arr[i]); //swap item[pos] and item[i] strcpy(arr[i], arr[mIndex]); strcpy(arr[mIndex], temp); } } } int main(){ char arr[][50] = {"Tom", "Boyaka", "Matt" ,"Luke"}; int n = sizeof(arr)/sizeof(arr[0]); int i; cout<<"Given String is:: Tom, Boyaka, Matt, Luke\n"; selectionSort(arr, n); cout << "\nSelection Sorted is::\n"; for (i = 0; i < n; i++) cout << i << ": " << arr[i] << endl; return 0; }
Chương trình C ++ ở trên này ban đầu chọn thành phần nhỏ nhất trong triển lãm và hoán đổi nó với thành phần chính trong cụm. Tiếp theo, nó hoán đổi thành phần nhỏ nhất thứ hai trong cụm với thành phần tiếp theo, v.v. Theo cách này đối với mỗi lần vượt qua, thành phần nhỏ nhất trong triển lãm được chọn và đặt trong tình huống hợp pháp của nó cho đến khi toàn bộ cụm được sắp xếp. Cuối cùng, phương pháp sắp xếp phần sắp xếp chuỗi đã cho theo thứ tự tăng dần như sau;
Đầu ra
Given string is:: Tom, Boyaka, Matt, Luke Selection Sorted:: Boyaka Luke Matt Tom