#include <iostream>
#include <vector>
void selectionSort(std::vector<int>& arr) {
int n = arr.size();
for (int i = 0; i < n - 1; ++i) {
int minIndex = i;
for (int j = i + 1; j < n; ++j) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
std::swap(arr[i], arr[minIndex]);
}
}
int main() {
std::vector<int> arr = {12, 11, 13, 5, 6};
selectionSort(arr);
std::cout << "Sorted array using Selection Sort: ";
for (int num : arr) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
这个选择排序的实现会遍历整个数组,每次找到未排序部分的最小元素,并将其与未排序部分的第一个元素进行交换。这样,每次循环都会将未排序部分的最小元素放到已排序部分的末尾,直至整个数组排序完成。