/** * File: selection_sort.cpp * Created Time: 2023-05-23 * Author: krahets (krahets@163.com) */ #include "../utils/common.hpp" /* 选择排序 */ void selectionSort(vector &nums) { int n = nums.size(); // 外循环:未排序区间为 [i, n-1] for (int i = 0; i < n - 1; i++) { // 内循环:找到未排序区间内的最小元素 int k = i; for (int j = i + 1; j < n; j++) { if (nums[j] < nums[k]) k = j; // 记录最小元素的索引 } // 将该最小元素与未排序区间的首个元素交换 swap(nums[i], nums[k]); } } /* Driver Code */ int main() { vector nums = {4, 1, 3, 1, 5, 2}; selectionSort(nums); cout << "选择排序完成后 nums = "; printVector(nums); return 0; }