7-38 寻找大富翁 (25 分)

注意: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;
}
全部评论

相关推荐

2025-12-11 14:24
门头沟学院 Java
牛客35720396...:不要用boss,全是骗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务