0
点赞
收藏
分享

微信扫一扫

PTA习题

Jonescy 2022-02-21 阅读 74
c++算法

7-4 K轮排序 (10 分)

输入n个数据。请用选择法进行从大到小的降序排序,输出第k轮排序后的数列状况。

输入格式:

输入第一行给出一个不超过10的正整数n和轮次k(k<n)。第二行给出n个整数,其间以空格分隔。

输出格式:

在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。

输入样例:

在这里给出一组输入。例如:

8 2
75 71 77 76 63 89 12 55

输出样例:

在这里给出相应的输出。例如:

89 77 71 76 63 75 12 55

 

#include<iostream>
#include<vector>
#include<algorithm>
int main(void)
{
	std::ios::sync_with_stdio(false);
	std::cin.tie(0);
	int n, k, tmp=0;
	std::cin >> n >> k;
	if (k < n) {
		std::vector<int> p(n);
		for (int i = 0; i < n; i++)
			std::cin >> p[i];
		for (int i = 0; i < k; i++)
		{
			int cnt = p[i];
			tmp = i;
			for (int j = i+1 ; j < n; j++)
			{
				if (cnt < p[j])
				{
					tmp = j;
					cnt = p[j];
				}
			}
			std::swap(p[i], p[tmp]);		
		}
		for (int i = 0; i < n-1; i++)
			std::cout << p[i] << " ";
		std::cout << p[n - 1];
		return 0;
	}
	return 0;
}
举报

相关推荐

0 条评论