#include <iostream>
#include <vector>
using namespace std;
void selectionSort(vector<int>& arr) { //用vector函数构造数组,&(引用传递),可以不加
int n = arr.size();
for (int i = 0; i < n; i++) { // 先假设arr[i]数字最小
int minIndex = i;
for (int j = i + 1; j < n; j++) { // 从假设最小数的后一个开始
if (arr[j] < arr[minIndex]) { /*如果假设最小数arr[i]大于后面的数arr[j],
则将第j个作为最小数接着向后比较,
直到找到后(n - i)和数中最小的数 ,把位置传给“中间商”minIndex*/
minIndex = j
;
}
}
if (minIndex != i) { //如果所找的最小数与假设的最小数不是同一个
swap(arr[i], arr[minIndex]); //将后(n - i)个数的最小值和假设最小值交换;swap (a,b)交换a,b的值
}
}
}
int main() {
int num;
cout << "请输入数字的个数:" << endl;
cin >> num;
vector<int> arr(num);
cout << "请输入要排序的数字:" << endl;
for (int i = 0; i < num; i++) {
cin >> arr[i];
}
selectionSort(arr);
cout << "排序后的结果:" << endl;
for (int i = 0; i < num; i++) {
cout << arr[i] << " ";
}
return 0;
}
运行结果: