注意:N有可能比M小
思路:使用选择排序或者冒泡排序,遍历M趟,一边遍历,一边输出。
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6+5;
int arr[maxn];
int main(){
int n,m;
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++){
scanf("%d",arr+i);
}
int Mi;
int shr=min(m,n);
for(int i=0;i<shr;i++){
Mi=i;
for(int j=i+1;j<n;j++){
if(arr[Mi]<arr[j]){
Mi=j;
}
}
if(i!=shr-1) printf("%d ",arr[Mi]);
else printf("%d\n",arr[Mi]);
arr[i]^=arr[Mi];
arr[Mi]^=arr[i];
arr[i]^=arr[Mi];
}
return 0;
}