点击查看代码
//Selection sort
#include<iostream>
using namespace std;
void selectionsort(int A[], int n) {
for (int i = 0; i < n - 1; i++) {//从索引0开始排序至索引n-2,n-1号元素自然最大
int iMin = i;//索引i至索引n-1最小元素的索引,初始化为i,索引i至索引n-1未完成排序
for (int j = i + 1; j < n; j++) {
if (A[j] < A[iMin])
iMin = j;
}//从索引i后面开始依次与索引i比较,迭代为索引i至索引n-1最小元素索引
int temp = A[i];
A[i] = A[iMin];
A[iMin] = temp;//交换最小元素与索引i,索引i及之前元素完成排序
}
}//时间复杂度:O(n^2)
int main() {
int A[] = { 2,7,4,1,5,3 };
selectionsort(A, 6);
for (int i = 0; i < 6; i++) cout << A[i] << " ";
cout << endl;
}