时间复杂度:O(N2)
进行n-1次挑选,每一次找一个最小的与第一个数交换。
#include<bits/stdc++.h>
#define me(x , y) memset(x , y , sizeof(x))
#define SC scanf
#define rep(i , j , n) for(int i = j ; i < n ; i ++)
#define red(i , n , j) for(int i = n-1 ; i >= j ; i--)
#define INF 0x3f3f3f3f
#define mod 1000000007
#define PI acos(-1)
using namespace std;
typedef long long ll ;
int a[109];
int n ;
void select()
{
rep(i , 0 , n-1){
int index , mi = INF;
rep(j , i , n){
if(a[j] < mi){
index = j ;
mi = a[j];
}
}
swap(a[index] , a[i]);
}
}
int main()
{
cin >> n;
rep(i , 0 , n){
SC("%d" , &a[i]);
}
select();
rep(i , 0 , n){
cout <<a[i]<<" ";
}
cout << endl;
return 0;
}
原文:https://www.cnblogs.com/nonames/p/12286101.html