选择排序
时间复杂度: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; }