อัลกอริธึมการจัดเรียงการเลือกจะจัดเรียงการจัดแสดงโดยการค้นหาส่วนประกอบพื้นฐานจากส่วนที่ไม่ได้จัดเรียงมากกว่าหนึ่งครั้งและนำไปไว้ที่จุดเริ่มต้น ในแต่ละการเน้นของการจัดเรียงการกำหนด ส่วนประกอบฐานจากอาร์เรย์ย่อยที่ไม่เรียงลำดับจะถูกเลือกและย้ายไปยังอาร์เรย์ย่อยที่จัดเรียงไว้
ตัวอย่าง
#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; }
โปรแกรม C ++ ด้านบนนี้เริ่มต้นเลือกส่วนประกอบที่เล็กที่สุดในนิทรรศการและสลับกับองค์ประกอบหลักในคลัสเตอร์ ถัดไป มันจะสลับส่วนประกอบที่เล็กที่สุดที่สองในคลัสเตอร์กับส่วนประกอบที่ตามมา ฯลฯ ในลักษณะนี้สำหรับแต่ละรอบ ส่วนประกอบที่เล็กที่สุดในการจัดแสดงจะถูกเลือกและวางไว้ในสถานการณ์ที่ถูกต้องจนกว่าจะจัดเรียงทั้งคลัสเตอร์ สุดท้าย วิธีการจัดเรียงส่วนจะเรียงลำดับสตริงที่กำหนดจากน้อยไปหามากดังนี้
ผลลัพธ์
Given string is:: Tom, Boyaka, Matt, Luke Selection Sorted:: Boyaka Luke Matt Tom