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

相关推荐

认真搞学习:28小登的建议,投算法岗不要写什么物理竞赛,互联网+,多写点项目,用什么算法做了什么。还有本科算法是不可能的开发你这个也没有项目啊
点赞 评论 收藏
分享
吴offer选手:下午mt一来就告警说项目来不及,估计明天拿了权限就要参与开发了 已老实
实习生的蛐蛐区
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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