每一輪會從未排序區間找出最小值,並與前端位置交換。可切換自動播放或分解模式學習。
這段程式碼示範 Selection Sort 的核心概念:每一輪先找最小值,再放到前面正確位置。
i。minIdx。minIdx != i,就把最小值交換到前面。#include <iostream>
#include <vector>
using namespace std;
void selectionSort(vector<int>& arr) {
int n = static_cast<int>(arr.size());
for (int i = 0; i < n - 1; ++i) {
int minIdx = i;
for (int j = i + 1; j < n; ++j) {
if (arr[j] < arr[minIdx]) {
minIdx = j;
}
}
if (minIdx != i) {
swap(arr[i], arr[minIdx]);
}
}
}
int main() {
vector<int> data = {64, 25, 12, 22, 11};
selectionSort(data);
cout << "排序結果: ";
for (int x : data) {
cout << x << " ";
}
cout << endl;
return 0;
}